home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / novell / fyidev / austin.fyi < prev    next >
Text File  |  1996-07-10  |  1MB  |  30,587 lines

  1. FYI:    NextResetTime Documented Incorrectly
  2.                                      FYI
  3.  
  4. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5.  
  6.           TITLE:    NextResetTime Documented Incorrectly
  7.    DOCUMENT ID#:    FYI.A.3384
  8.            DATE:    06OCT92
  9.         PRODUCT:    NetWare C Interface DOS
  10. PRODUCT VERSION:    1.2
  11.      SUPERSEDES:    NA
  12.  
  13.        SYMPTOM:    NA
  14.  
  15. ISSUE/PROBLEM    
  16.  
  17.     The nextResetTime field in the LOGIN_CONTROL property in the bindery is documented incorrectly.  It states that the value is stored in seconds since January 1, 1985.  It is actually the number of minutes since January 1, 1985.
  18.  
  19. SOLUTION    
  20.  
  21.     Calculate in minutes instead of seconds when calculating the nextReset Time for an account lockout or reset.
  22.  
  23.  
  24.  
  25.  
  26. FYI:    Handle Usage with Btrieve
  27.                                      FYI
  28.  
  29. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30.  
  31.           TITLE:    Handle Usage with Btrieve
  32.    DOCUMENT ID#:    FYI.A.2042
  33.            DATE:    05OCT92
  34.         PRODUCT:    Btrieve for Windows
  35. PRODUCT VERSION:    5.10
  36.      SUPERSEDES:    NA
  37.  
  38.        SYMPTOM:    Error - No available file handles
  39.  
  40. ISSUE/PROBLEM    
  41.  
  42.     Btrieve for DOS version 5.10a allocates its own PSP (Program Segment Prefix) with a file handle table of size (/f parameter * 2) entries (with patch #99 applied).  Btrieve for DOS does not use the calling application's file handles.  This means that when a DOS application has opened 20 Btrieve files, the application still has 15 handles (20 DOS default handles - 5 standard) available for use to issue DOS open calls to non-Btrieve files.
  43.  
  44.     This is not the case, however, with Btrieve for Windows.  Btrieve for Windows uses the calling application's file handle table.  When the application's available handles are exhausted, WBTRCALL will "rotate" the handles as in prior versions of Btrieve for DOS (prior to 5.10).
  45.  
  46.     This means that once 15 Btrieve files are open, there are no handles available to the calling application for DOS open calls to non-Btrieve files, since DOS will not rotate handles.  At this point, if another Btrieve open is issued, WBTRCALL will close one of its open files and use the handle to open the new file. This is done invisibly to the application and WBTRCALL can handle up to its current /f: parameter of rotating files at one time.
  47.  
  48. SOLUTION    
  49.  
  50.     WBTRCALL will use whatever application handles are available, so if DOS open calls to non-Btrieve files are desired along with more than 15 Btrieve opens, one solution is to open the DOS files before the Btrieve files.
  51.  
  52.     Another solution is to increase the number of handles available to the application at compile time.  The process of increasing the number of open files to more than the default 20 varies with the compiler used.  See other FYIs on how to increase the handles with Microsoft and 
  53.     Borland C.
  54.  
  55.  
  56.  
  57.  
  58. FYI:    Calling WXQLCALL.DLL Functions from Visual Basic
  59.                                      FYI
  60.  
  61. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  62.  
  63.           TITLE:    Calling WXQLCALL.DLL Functions from Visual Basic
  64.    DOCUMENT ID#:    FYI.A.2040
  65.            DATE:    05OCT92
  66.         PRODUCT:    NetWare SQL
  67. PRODUCT VERSION:    3.00
  68.      SUPERSEDES:    NA
  69.  
  70.        SYMPTOM:    NA
  71.  
  72. ISSUE/PROBLEM    
  73.  
  74.     The following Declare statements can be used in a Visual Basic application's Global section to define the functions contained in the NetWare SQL requester for Windows, WXQLCALL.DLL.
  75.  
  76. SOLUTION    
  77.  
  78.      '*********   Manager Level Functions  *************
  79.      '--------------------------------------------------
  80.  
  81.      Declare Function XQLCompile Lib "wxqlcall.dll" (ByVal iCursorID%,
  82.        iStatementLen As Integer, ByVal sStatement$) As Integer
  83.  
  84.      Declare Function XQLConvert Lib "wxqlcall.dll" (ByVal iOption%, ByVal
  85.        iType%, ByVal iSize%, ByVal iDec%, ByVal iDSize%, ByVal sValue$, ByVal
  86.        sRetValue$, ByVal sMask$, ByVal iJustify%) As Integer
  87.  
  88.      Declare Function XQLCursor Lib "wxqlcall.dll" (iCursorID As Integer) As
  89.        Integer
  90.  
  91.      Declare Function XQLDescribe Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  92.        iPosition%, iSize As Integer, iDecPlaces As Integer, iDisplayLen As Integer
  93.         iNameLen As Integer, ByVal sName$) As Integer
  94.  
  95.      Declare Function XQLExec Lib "wxqlcall.dll" (ByVal iCursorID%) As Integer
  96.  
  97.      Declare Function XQLFetch Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  98.        iOption%, iBufLen As Integer, bDataBuf As Any, lCount As Long, ByVal
  99.        iASCIIFlag%, ByVal iSpacing%) As Integer
  100.  
  101.      Declare Function XQLFormat Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  102.        iPosition%, ByVal iMaskLen%, ByVal sMask$) As Integer
  103.  
  104.      Declare Function XQLFree Lib "wxqlcall.dll" (ByVal iCursorID%) As Integer
  105.  
  106.      Declare Function XQLLogin Lib "wxqlcall.dll" (ByVal sUser$, ByVal
  107.        sPassword$, ByVal sDDPath$, ByVal sDataPath$, ByVal sReserved$, ByVal
  108.        iReserved%) As Integer
  109.  
  110.      Declare Function XQLLogout Lib "wxqlcall.dll" () As Integer
  111.  
  112.      Declare Function XQLMask Lib "wxqlcall.dll" (ByVal iOption%, ByVal iType%,
  113.        ByVal iSize%, ByVal iDec%, iLen As Integer, ByVal sMask$) As Integer
  114.  
  115.      Declare Function XQLSputility Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  116.        iOption%, iStatementCount As Integer, iStatementExec As Integer, iBufLen
  117.        As Integer, bDataBuf As Any) As Integer
  118.  
  119.      Declare Function XQLStatus Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  120.        iOption%, ByVal sStatBuf$) As Integer
  121.  
  122.      Declare Function XQLStop Lib "wxqlcall.dll" () As Integer
  123.  
  124.      Declare Function XQLSubst Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  125.        iCount%, ByVal iNameLen%, ByVal sVarNames$, ByVal iTextLen%, ByVal
  126.        sValueText$) As Integer
  127.  
  128.      Declare Function XQLValidate Lib "wxqlcall.dll" (iCount As Integer, ByVal
  129.        sFieldName$, ByVal iBufLen%, bDataBuf As Any) As Integer
  130.  
  131.      Declare Function XQLVersion Lib "wxqlcall.dll" (ByVal sVersion$) As Integer
  132.  
  133.      '*********   Dictionary Primitives  *************
  134.      '------------------------------------------------
  135.  
  136.      Declare Function xDD Lib "wxqlcall.dll" (ByVal sPathName$, ByVal iOption%)
  137.        As Integer
  138.  
  139.      Declare Function xDDAttr Lib "wxqlcall.dll" (ByVal iOption%, ByVal
  140.        sFldName$, ByVal iAttrType%, iBufLen As Integer, ByVal sAttrBuf$) As
  141.        Integer
  142.  
  143.      Declare Function xDDCreate Lib "wxqlcall.dll" (ByVal iOption%, ByVal
  144.        sFileName$, ByVal iCreate%, ByVal sPathName$, ByVal sOwner$, ByVal
  145.        iOwnerFlag%, ByVal iFldCount%, bFldBuf As Any, ByVal iIndxCount%, bIndx
  146.        As Any, ByVal iLen%, bCPrms As Any) As Integer
  147.  
  148.      Declare Function xDDDrop Lib "wxqlcall.dll" (ByVal sName$, ByVal iType%,
  149.        ByVal iDelete%) As Integer
  150.  
  151.      Declare Function xDDField Lib "wxqlcall.dll" (ByVal iOption%, iCount As
  152.        Integer, ByVal sFldNames$, iBufLen As Integer, bDataBuf As Any) As
  153.        Integer
  154.  
  155.      Declare Function xDDFile Lib "wxqlcall.dll" (ByVal iOption%, iCount As
  156.        Integer, ByVal sFileName$, iBufLen As Integer, bDataBuf As Any) As
  157.        Integer
  158.  
  159.      Declare Function xDDIndex Lib "wxqlcall.dll" (ByVal iOption%, iCount As
  160.        Integer, ByVal sIndexName$, iBufLen As Integer, bDataBuf As Any) As
  161.        Integer
  162.  
  163.      Declare Function xDDModify Lib "wxqlcall.dll" (ByVal iOption%, ByVal
  164.        sFileName$, ByVal iCreate%, ByVal sPathName$, ByVal sOwner$, ByVal
  165.        iOwnerFlag%, ByVal iFldCount%, bFldBuf As Any, ByVal iIndxCount%,
  166.        bIndxBuf As Any) As Integer
  167.  
  168.      Declare Function xDDPath Lib "wxqlcall.dll" (ByVal iOption%, ByVal
  169.        sPathName$) As Integer
  170.  
  171.      Declare Function xDDView Lib "wxqlcall.dll" (iCount As Integer, ByVal
  172.        sViewName$, iBufLen As Integer, bDataBuf As Any) As Integer
  173.  
  174.      '*********   Data Manipulation Primitives  *************
  175.      '-------------------------------------------------------
  176.  
  177.      Declare Function xCompute Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  178.        sFldName$, ByVal iFldType%, ByVal iFldLen%, ByVal iDecPlaces%, iExpLen
  179.        As Integer, ByVal sExpression$) As Integer
  180.  
  181.      Declare Function xConvert Lib "wxqlcall.dll" (ByVal iOption%, ByVal iType%,
  182.        ByVal iSize%, ByVal iDec%, ByVal iDSize%, ByVal sValue$, ByVal sRetVal$,
  183.        ByVal sMask$, ByVal iJustify%) As Integer
  184.  
  185.      Declare Function xDescribe Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  186.        iOption%, iBufLen As Integer, ByVal iPosition%, iCount As Integer, bDataBu
  187.  
  188.        As Any) As Integer
  189.  
  190.      Declare Function xFetch Lib "wxqlcall.dll" (ByVal iCursorID%, iBufLen As
  191.        Integer, ByVal iOption%, lRecordCount As Long, lRejectCount As Long,
  192.        bDataBuf As Any) As Integer
  193.  
  194.      Declare Function xField Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  195.        iOption%, ByVal iPosition%, iCount As Integer, ByVal sFldNames$) As
  196.        Integer
  197.  
  198.      Declare Function xFree Lib "wxqlcall.dll" (ByVal iCursorID%) As Integer
  199.  
  200.      Declare Function xInsert Lib "wxqlcall.dll" (ByVal iCursorID%, iFileCount
  201.        As Integer, ByVal sFileName$, lRecordCount As Long, bDataBuf As Any) As
  202.        Integer
  203.  
  204.      Declare Function xJoin Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal sSecFile$
  205.  
  206.        ByVal sOwner$, ByVal iOption%, ByVal iPriFldCount%, ByVal sPriFlds$,
  207.        ByVal iSecFldCount%, ByVal sSecFlds$) As Integer
  208.  
  209.      Declare Function xMask Lib "wxqlcall.dll" (ByVal iOption%, ByVal iType%,
  210.         ByVal iSize%, ByVal iDec%, iLen As Integer, ByVal sMask$) As Integer
  211.  
  212.      Declare Function xMoveFld Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  213.        iFromPosition%, ByVal iToPosition%) As Integer
  214.  
  215.      Declare Function xNew Lib "wxqlcall.dll" (iCursorID As Integer, ByVal
  216.        sFileName$, ByVal sOwner$, ByVal iOpenMode%) As Integer
  217.  
  218.      Declare Function xOrder Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  219.        iCount%, bOrderFld As Any) As Integer
  220.  
  221.      Declare Function xRecall Lib "wxqlcall.dll" (iCursorID As Integer, ByVal
  222.        sViewName$, ByVal iOwnerCount%, ByVal sOwner$, ByVal iOpenMode%,
  223.        iTextLen As Integer, ByVal sText$) As Integer
  224.  
  225.      Declare Function xRemall Lib "wxqlcall.dll" (ByVal iCursorID%, iFileCount
  226.        As Integer, ByVal sFileName$, ByVal iOption%, lRecordCount As Long,
  227.        lRejectCount As Long) As Integer
  228.  
  229.      Declare Function xRemove Lib "wxqlcall.dll" (ByVal iCursorID%, iFileCount
  230.        As Integer, ByVal sFileName$, lRecordCount As Long) As Integer
  231.  
  232.      Declare Function xReset Lib "wxqlcall.dll" (ByVal sReserved$) As Integer
  233.  
  234.      Declare Function xRestrict Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  235.        iOption%, iExpLen As Integer, ByVal sExpression$) As Integer
  236.  
  237.      Declare Function xStatus Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  238.        iOption%, iLen As Integer, ByVal sStatBuf$) As Integer
  239.  
  240.      Declare Function xStore Lib "wxqlcall.dll" (ByVal iCursorID%, ByVal
  241.        sViewName$, ByVal iTextLen%, ByVal sText$) As Integer
  242.  
  243.      Declare Function xTrans Lib "wxqlcall.dll" (ByVal iOption%) As Integer
  244.  
  245.      Declare Function xUpdall Lib "wxqlcall.dll" (ByVal iCursorID%, iFileCount
  246.        As Integer, ByVal sFileName$, ByVal iOption%, lRecordCount As Long,
  247.        lRejectCount As Long, ByVal iFldCount%, ByVal sUpdateFld$, ByVal
  248.        sReplaceFld$) As Integer
  249.  
  250.      Declare Function xUpdate Lib "wxqlcall.dll" (ByVal iCursorID%, iFileCount
  251.        As Integer, ByVal sFileName$, lRecordCount As Long, bDataBuf As Any) As
  252.        Integer
  253.  
  254.      Declare Function xValidate Lib "wxqlcall.dll" (iCount As Integer, ByVal
  255.        sFieldName$, ByVal iBufLen%, bDataBuf As Any) As Integer
  256.  
  257.      '*********   Data Control Primitives  *************
  258.      '--------------------------------------------------
  259.  
  260.      Declare Function xAccess Lib "wxqlcall.dll" (ByVal sMstrPswd$, ByVal
  261.        sUser$, ByVal iOption%, ByVal iAccRights%, ByVal sFileName$, iCount As
  262.        Integer, ByVal sFldNames$, iBufLen As Integer, bDataBuf As Any) As
  263.        Integer
  264.  
  265.      Declare Function xChar Lib "wxqlcall.dll" (ByVal iOption%, ByVal iType%,
  266.        ByVal cCharacter$) As Integer
  267.  
  268.      Declare Function xLogin Lib "wxqlcall.dll" (ByVal sUser$, ByVal sPassword$,
  269.        ByVal sDDPath$, ByVal sDataPath$, ByVal sReserved$, ByVal iReserved%)
  270.        As Integer
  271.  
  272.      Declare Function xLogout Lib "wxqlcall.dll" () As Integer
  273.  
  274.      Declare Function xPassword Lib "wxqlcall.dll" (ByVal sUser$, ByVal
  275.        sPassword$) As Integer
  276.  
  277.      Declare Function xSecurity Lib "wxqlcall.dll" (ByVal sMstrPswd$, ByVal
  278.        iOption%) As Integer
  279.  
  280.      Declare Function xStop Lib "wxqlcall.dll" () As Integer
  281.  
  282.      Declare Function xUser Lib "wxqlcall.dll" (ByVal sMstrPswd$, ByVal
  283.        iOption%, ByVal sUser$, ByVal sPassword$, ByVal iFlags%, iCount As
  284.        Integer, iBufLen As Integer, bDataBuf As Any) As Integer
  285.  
  286.      Declare Function xVersion Lib "wxqlcall.dll" (ByVal sVersion$) As Integer
  287.  
  288.  
  289.  
  290.  
  291. FYI:    Increasing File Handles with Borland C
  292.                                      FYI
  293.  
  294. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  295.  
  296.           TITLE:    Increasing File Handles with Borland C
  297.    DOCUMENT ID#:    FYI.A.2039
  298.            DATE:    05OCT92
  299.         PRODUCT:    Btrieve for Windows
  300. PRODUCT VERSION:    5.10
  301.      SUPERSEDES:    NA
  302.  
  303.        SYMPTOM:    Error - No available file handles
  304.  
  305. ISSUE/PROBLEM    
  306.  
  307.     When using Btrieve for Windows, it is sometimes necessary to increase the number of file handles available to an application when opening non-Btrieve files using DOS open calls.  
  308.  
  309.     Below are instructions on how to do this with Borland C/C++ v3.1.  See associated FYIs,  Handle Usage with Btrieve for Windows and Increasing Available File Handles with Microsoft C for more information.
  310.  
  311. SOLUTION    
  312.  
  313.     Increasing the number of files available to a program in Borland C involves changing 3 files from the Run-time Library: _NFILE.H, FILES.C, and FILES2.C.  The only change actually needed is to _NFILE.H, where the macro _NFILE_ must be redefined.  The files FILES.C and FILES2.C just need to be recompiled to reflect the changes to this macro.  Assigning a value to this macro will set the maximum number of FILES available to a program including the 5 standard files (stdin, stdout, stderr, stdaux, stdprn).
  314.  
  315.     The changes can be made in two different ways.  One, simply recompile FILES.C and FILES2.C in the appropriate memory model and link them in with the program.  In the IDE, this means adding the two .C files to the project.  On the command line, this means adding them to the BCC line.  For example:      BCC myprog.c FILES.C FILES2.C
  316.  
  317.     The effect of this will be that the symbols will be redefined in the two files which have been previously defined in the standard libraries, and precedence will go to the new definition.  The subsequent warnings from the linker (if the Warn Duplicate Symbols option, /d,  is set) can be ignored.
  318.  
  319.     The other method is to replace the FILES.C and FILES2.C in the standard library with the modified and recompiled versions.  The advantage of doing this is every time access to more than 20 files is needed by an application, the files  will not always have to be added to the project manually.  To replace the files in the standard library, first recompile them using BCC like this:
  320.  
  321.           BCC -c -mX FILES.C FILES2.C
  322.  
  323.     where the X in -mX refers to the memory model of the library being modified (this step will have to be repeated for each memory model to be modified).  This will result in FILES.OBJ and FILES2.OBJ which can then be added to the appropriate library in the LIB directory using TLIB.  For the large model it would look like this:
  324.  
  325.           TLIB ml.lib +-FILES.OBJ +-FILES2.OBJ
  326.  
  327.     In the Windows environment, a call must also be added to the Windows API function SetHandleCount, to inform Windows that the program needs more file handles.
  328.  
  329.  
  330.  
  331.  
  332. FYI:    Usage of SetVolumeRestrictions() by a Workgroup Manager
  333.                                      FYI
  334.  
  335. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  336.  
  337.           TITLE:    Usage of SetVolumeRestrictions() by a Workgroup Manager
  338.    DOCUMENT ID#:    FYI.A.4801
  339.            DATE:    02OCT92
  340.         PRODUCT:    NetWare C Interface DOS
  341. PRODUCT VERSION:    1.2
  342.      SUPERSEDES:    NA
  343.  
  344.        SYMPTOM:    SetVolumeRestrictions returns a 140 error code (No Modify Rights) when called by a workgroup manager.
  345.  
  346. ISSUE/PROBLEM    
  347.  
  348.     SetVolumeRestrictions does not allow a workgroup manager to set the volume restrictions for members of his/her group.
  349.  
  350. SOLUTION    
  351.  
  352.     Only a user with supervisor rights can use SetVolumeRestrictions() to set the volume restrictions for a user.
  353.  
  354.  
  355.  
  356.  
  357. FYI:    NetWare SQL NLM Fails to Load
  358.                                      FYI
  359.  
  360. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  361.  
  362.           TITLE:    NetWare SQL NLM Fails to Load
  363.    DOCUMENT ID#:    FYI.A.1049
  364.            DATE:    02OCT92
  365.         PRODUCT:    NetWare SQL
  366. PRODUCT VERSION:    3.00
  367.      SUPERSEDES:    NA
  368.  
  369.        SYMPTOM:    NetWare SQL fails to load.
  370.  
  371. ISSUE/PROBLEM    
  372.  
  373.     If using the NSSTART.NCF file to load the NetWare SQL v3.0 NLMs the console may display messages like:
  374.  
  375.      Loader cannot find public symbol: NSDBNamesList
  376.      Loader cannot find public symbol: NSAdvertiseDBNames
  377.      Loader cannot find public symbol: NSSRBProcess
  378.      Loader cannot find public symbol: NSSBTBGetStats
  379.      Loader cannot find public symbol: NSResetClient
  380.  
  381.     These messages may be followed by additional messages about resources not being released.
  382.  
  383.     If using the BSTART.NCF file to load the BTRIEVE NLMs and then followed by the NSSTART.NCF file you will get these same messages again.  If you then attempt load the NWSQL.NLM manually (by typing LOAD NWSQL at the server console prompt) the message that appears will pinpoint the real problem.  The message displayed on the console will be:
  384.  
  385.      NetWare SQL: Unable to open database names configuration file.
  386.  
  387. SOLUTION    
  388.  
  389.     For some reason, NetWare SQL is unable to open the database names configuration file, DBNAMES.CFG, which is located in the SYS:SYSTEM directory.  This file has probably been damaged in some way.  Rename or delete this file, and then try to load the NLMs again with the NSSTART command.   When NetWare SQL is loading, if it finds that the DBNAMES.CFG file does not exist it will automatically create a new one.
  390.  
  391.     *** SPECIAL NOTE:  Keep in mind, that if there were named databases defined in the damaged or corrupted DBNAMES.CFG file, they must be redefined in the new file using the NetWare SQL Setup Utility (NDBSETUP.NLM).
  392.  
  393.  
  394.  
  395.  
  396. FYI:    Get Position Fails to Lock File after Begin Transaction
  397.                                      FYI
  398.  
  399. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  400.  
  401.           TITLE:    Get Position Fails to Lock File after Begin Transaction
  402.    DOCUMENT ID#:    FYI.A.1048
  403.            DATE:    02OCT92
  404.         PRODUCT:    Btrieve
  405. PRODUCT VERSION:    ANY
  406.      SUPERSEDES:    NA
  407.  
  408.        SYMPTOM:    A Get Position performed on a file after a Begin Transaction does not lock the file.
  409.  
  410. ISSUE/PROBLEM    
  411.  
  412.     The scenario described below will not lock the file for Station 1, and Station 2's read and update operations will be successful.
  413.  
  414.       Station 1           Station 2
  415.       ---------           ---------
  416.       Open file A
  417.                           Open file A
  418.       Get First Rec
  419.       Begin Trans
  420.       Get Position
  421.                           Begin Trans
  422.                           Get First Rec
  423.                           Update
  424.  
  425.     Normally, the first successful operation performed on a file within a transaction establishes an exclusive file-level lock on that file, which prohibits all other users from writing to that file.  However, Get Position information is obtained by just looking at the Position Block.  This is true for both client Btrieve and NetWare Btrieve.  The file is never touched and therefore the exclusive file lock is not set.  So, Station 2s update will succeed.  According to development, the Position Block is always updated with the record usage count and address information on standard Btrieve calls.
  426.  
  427. SOLUTION    
  428.  
  429.     The workstation application that is trying to lock a file within an Explicit Btrieve Transaction must make a call that actually touches the file.  Any read operation or an insert operation will do this.
  430.  
  431.  
  432.  
  433.  
  434. FYI:    Memory Requirements for NetWare v3.x Servers
  435.                                      FYI
  436.  
  437. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  438.  
  439.           TITLE:    Memory Requirements for NetWare v3.x Servers
  440.    DOCUMENT ID#:    FYI.A.1047
  441.            DATE:    02OCT92
  442.         PRODUCT:    NetWare Btrieve NLM
  443. PRODUCT VERSION:    5.x
  444.      SUPERSEDES:    NA
  445.  
  446.        SYMPTOM:    Server console errors: unable to allocate short term memory
  447.  
  448. ISSUE/PROBLEM    
  449.  
  450.     When running the Btrieve NLM on a NetWare 3.x server, error messages such as "Unable to allocate short term memory" may appear at the server console. This indicates that the server may be out of available CACHE (i.e.. RAM) on that server.  Btrieve may subsequently return errors like status 16 "Expansion Error",  or 91 "Server Error".
  451.  
  452. SOLUTION    
  453.  
  454.     Add more memory to the server.
  455.  
  456.  
  457.  
  458.  
  459. FYI:    Start Transaction / Cursors
  460.                                      FYI
  461.  
  462. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  463.  
  464.           TITLE:    Start Transaction / Cursors
  465.    DOCUMENT ID#:    FYI.A.2041
  466.            DATE:    30SEP92
  467.         PRODUCT:    NetWare SQL
  468. PRODUCT VERSION:    3.00
  469.      SUPERSEDES:    NA
  470.  
  471.        SYMPTOM:    Status 202 (invalid cursor ID) within a manager level START TRANSACTION
  472.  
  473. ISSUE/PROBLEM    
  474.  
  475.     When XQLCompile is used to start a transaction, any view that is currently associated with the cursor ID that is passed to XQLCompile will be released. As a result, if there is an attempt to access the view inside the transaction, a status 202 (invalid cursor ID) will be returned.  This is not the case, however, when the primitive level function, xTrans - option 0, is used to start the transaction.  Since xTrans does not use a cursor ID, any views defined will not be effected.
  476.  
  477. SOLUTION    
  478.  
  479.     Allocate a separate cursor ID with XQLCursor to be used for transaction control SQL statements, or use the xTrans primitive.
  480.  
  481.  
  482.  
  483.  
  484. FYI:    NetWare SQL and Status 43
  485.                                      FYI
  486.  
  487. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  488.  
  489.           TITLE:    NetWare SQL and Status 43
  490.    DOCUMENT ID#:    FYI.A.1768
  491.            DATE:    30SEP92
  492.         PRODUCT:    NetWare SQL
  493. PRODUCT VERSION:    3.00
  494.      SUPERSEDES:    NA
  495.  
  496.        SYMPTOM:    Status 43 - Invalid Record Address
  497.  
  498. ISSUE/PROBLEM    
  499.  
  500.     There are several situations under which NetWare SQL might return a status 43 (Invalid Record Address) to an application.  One such circumstance occurs when user one issues an XQLFetch call to retrieve multiple records, and then user two deletes the last record that was just fetched by user one.  Then, if user one attempts to fetch the next set of records, NetWare SQL returns a status 43.  This is due to the fact that when NetWare SQL tries to get the next set of records for user one, it first issues a Btrieve Get Direct call based on the last record that was previously returned to user one.  Since this record has been deleted, the Get Direct call fails and a status 43 is returned to NetWare SQL, which then returns the same status back to the application.
  501.  
  502.     There are other places where NetWare SQL uses Btrieve Get Direct operations to re-establish positioning between NetWare SQL calls.  In any of these cases, if the record has been deleted by another user, a status 43 will be returned.
  503.  
  504. SOLUTION    
  505.  
  506.     Once an application receives a 43, it must re-establish positioning for the cursor being used for the XQLFetch calls using a Fetch First or Fetch Last option.
  507.  
  508.  
  509.  
  510.  
  511. FYI:    Illustrated Guide to Btrieve
  512.                                      FYI
  513.  
  514. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  515.  
  516.           TITLE:    Illustrated Guide to Btrieve
  517.    DOCUMENT ID#:    FYI.A.1122
  518.            DATE:    30SEP92
  519.         PRODUCT:    Btrieve for DOS
  520. PRODUCT VERSION:    5.x+
  521.      SUPERSEDES:    NA
  522.  
  523.        SYMPTOM:    NA
  524.  
  525. ISSUE/PROBLEM    
  526.  
  527.     Are there any third-party manuals which describe the functionality of Btrieve?
  528.  
  529. SOLUTION    
  530.  
  531.     MIDI America has published a book called "Illustrated Guide to Btrieve".
  532.  
  533.     To place orders, call (404)455-0593 or write to the address listed below. MIDI America's hours are 10am-6pm Monday through Friday, with an answering machine taking orders after hours.
  534.  
  535.            MIDI America
  536.            2103 N. Decatur Road
  537.            Suite 160
  538.            Decatur, GA.  30033
  539.  
  540.  
  541.  
  542.  
  543. FYI:    NetWare SQL and Protection Violation
  544.                                      FYI
  545.  
  546. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  547.  
  548.           TITLE:    NetWare SQL and Protection Violation
  549.    DOCUMENT ID#:    FYI.A.1877
  550.            DATE:    25SEP92
  551.         PRODUCT:    NetWare SQL
  552. PRODUCT VERSION:    3.00
  553.      SUPERSEDES:    NA
  554.  
  555.        SYMPTOM:    Protection Violation
  556.  
  557. ISSUE/PROBLEM    
  558.  
  559.     With the 1992 fourth quarter release of NetWare SQL patches, a new NetWare SQL OS/2 requester was released.  It is version 3.00a.  This XQLCALLS.DLL is dated 8-17-92 and is 52645 bytes in size.  If Xtrieve PLUS for OS/2 version 4.11x is used with this requester a Protection Violation can occur given the following circumstances:
  560.  
  561.      1) If the owner name set up for a file is an incorrect owner name.
  562.  
  563.      2) If the view path specified is incorrect.
  564.  
  565.     The protection violation is most likely to occur when recalling a VIEW.
  566.  
  567. SOLUTION    
  568.  
  569.     If for some reason it is necessary to do this, the XQLCALLS.DLL dated 4-02-92 with a byte size of 52677 will not cause the protection violation. This is the original NetWare SQL v3.0 OS/2 requester, and its version is 3.00.
  570.  
  571.  
  572.  
  573.  
  574. FYI:    Update to Closing Files in a Transaction
  575.                                      FYI
  576.  
  577. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  578.  
  579.           TITLE:    Update to Closing Files in a Transaction
  580.    DOCUMENT ID#:    FYI.A.1876
  581.            DATE:    25SEP92
  582.         PRODUCT:    NetWare Btrieve NLM
  583. PRODUCT VERSION:    5.1x
  584.      SUPERSEDES:    NA
  585.  
  586.        SYMPTOM:    NA
  587.  
  588. ISSUE/PROBLEM    
  589.  
  590.     There is an FYI dated 31AUG92 titled: Closing Files in a Transaction.  It refers to the behavior of the Btrieve NLM version 6.0 in regards to closing a file during a transaction.  It was pointed out after the FYI was written that any file that is not written to during a transaction can be closed by the 6.0 Btrieve NLM during the transaction.  This is not so with previous versions of Btrieve in any environment (client or NetWare).  If the file is used in the transaction, it cannot be closed during the transaction.
  591.  
  592. SOLUTION    
  593.  
  594.     NA
  595.  
  596.  
  597.  
  598.  
  599. FYI:    Determining Versions of Windows and OS/2 DLLs
  600.                                      FYI
  601.  
  602. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  603.  
  604.           TITLE:    Determining Versions of Windows and OS/2 DLLs
  605.    DOCUMENT ID#:    FYI.A.1121
  606.            DATE:    24SEP92
  607.         PRODUCT:    Btrieve for Windows, Btrieve for OS/2
  608. PRODUCT VERSION:    ANY
  609.      SUPERSEDES:    NA
  610.  
  611.        SYMPTOM:    NA
  612.  
  613. ISSUE/PROBLEM    
  614.  
  615.     How can you determine which version of a DLL you are using, whether it be in the Windows or OS/2 environment?
  616.  
  617. SOLUTION    
  618.  
  619.     Use DOS debug, or Microsoft's EXEHDR.EXE program to find out.
  620.  
  621.     To do this with debug, at the DOS prompt, type:
  622.  
  623.            c:>debug WBTRCALL.DLL       ;(or BTRCALLS.DLL)
  624.            -d                          ;type this dump command several times,
  625.                                        until you see information such as
  626.                                        Btrieve Windows requester v6.00a
  627.            -q                          ;to exit
  628.  
  629.  
  630.  
  631.     To find out version information using EXEHDR.EXE, you must have a Microsoft C compiler.  Just type:
  632.  
  633.            c:>exehdr WBTRCALL.DLL      ;(or BTRCALLS.DLL)
  634.  
  635.     It will display information as follows:
  636.  
  637.     Microsoft (R) EXE File Header Utility  Version 3.00
  638.     Copyright (C) Microsoft Corp 1985-1992.  All rights reserved.
  639.  
  640.     Library:                  WBTRCALL
  641.     Description:              Btrieve Requester DPMI DynaLink v6.00b for
  642.                                  MS-Windows
  643.     Data:                     SHARED
  644.     Initialization:           Global
  645.     |
  646.     |
  647.     |
  648.  
  649.  
  650.  
  651.  
  652. FYI:    NWWaitOnSemaphore Hangs OS/2 NetWare Session
  653.                                      FYI
  654.  
  655. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  656.  
  657.           TITLE:    NWWaitOnSemaphore Hangs OS/2 NetWare Session
  658.    DOCUMENT ID#:    FYI.A.3383
  659.            DATE:    23SEP92
  660.         PRODUCT:    NetWare OS/2 SDK
  661. PRODUCT VERSION:    2.0
  662.      SUPERSEDES:    NA
  663.  
  664.        SYMPTOM:    NetWare OS/2 Sessions Hang
  665.  
  666. ISSUE/PROBLEM    
  667.  
  668.     The NWWaitOnSemaphore() call uses local semaphore locks in the NetWare OS/2 2.0 requester.  Unfortunately, there is a problem with the lock code that can cause NetWare sessions to hang.
  669.  
  670. SOLUTION    
  671.  
  672.     This will be fixed in the next update to the OS/2 2.0 Requester.
  673.  
  674.  
  675.  
  676.  
  677. FYI:    NDBCOMM.DLL Configuration Parameter
  678.                                      FYI
  679.  
  680. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  681.  
  682.           TITLE:    NDBCOMM.DLL Configuration Parameter
  683.    DOCUMENT ID#:    FYI.A.1767
  684.            DATE:    23SEP92
  685.         PRODUCT:    NetWare SQL
  686. PRODUCT VERSION:    3.00
  687.      SUPERSEDES:    NA
  688.  
  689.        SYMPTOM:    NetWare SQL session cleared for OS/2 client
  690.  
  691. ISSUE/PROBLEM    
  692.  
  693.     If the time necessary for NetWare SQL to process an SQL statement sent by an OS/2 client is more than 60 seconds, the NetWare SQL session will be cleared.
  694.  
  695. SOLUTION    
  696.  
  697.     There is a configuration parameter that can be set to tell the NDBCOMM.DLL how long to wait before resetting the session.  NDBCOMM is part of the NetWare SQL OS/2 requester, and is used in conjunction with the XQLCALLS.DLL by a NetWare SQL application running on an OS/2 client.  The parameter is NDBTIMEOUT.  If this parameter is not set, NDBCOMM.DLL will wait 60000 milliseconds (60 seconds) for a response.  This parameter can be set to increase the time NDBCOMM will wait, or it can be set to -1, which tells NDBCOMM to wait indefinitely.
  698.  
  699.      The syntax is:       SET NDBTIMEOUT=<value>
  700.  
  701.     This statement can be executed from the workstation's CONFIG.SYS file, or from the command line before the first NetWare SQL application is started (i.e. before NDBCOMM.DLL loads).
  702.  
  703.     Some example settings are:      
  704.  
  705.      SET NDBTIMEOUT=-1        -->    Tells NDBCOMM to wait indefinitely
  706.  
  707.      SET NDBTIMEOUT=900000    -->    Tells NDBCOMM to wait 15 minutes for a reply
  708.  
  709.     Certain NetWare SQL queries may cause NetWare SQL to build one or more temporary sort files.  When tables with many records are involved, this process may take a while, in which case you may need to set this parameter to a very high value, or use the -1 option.
  710.  
  711.  
  712.  
  713.  
  714. FYI:    RecoverSalvageableFiles() Initial Search
  715.                                      FYI
  716.  
  717. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  718.  
  719.           TITLE:    RecoverSalvageableFiles() Initial Search
  720.    DOCUMENT ID#:    FYI.A.4803
  721.            DATE:    21SEP92
  722.         PRODUCT:    NetWare C Interface DOS
  723. PRODUCT VERSION:    1.2
  724.      SUPERSEDES:    NA
  725.  
  726.        SYMPTOM:    Unsuccessful recover of salvageable files when entryID has an initial value of -1.
  727.  
  728. ISSUE/PROBLEM    
  729.  
  730.     The parameter entryID does not expect a -1 as the value for its initial search.  Instead it requires the value of a file ID.
  731.  
  732. SOLUTION    
  733.  
  734.     Get the file ID from the parameter entryID in ScanSalvagableFiles and use its value in the entryID parameter for RecoverSalvageableFiles.
  735.  
  736.  
  737.  
  738.  
  739. FYI:    ScanSalvagableFiles() Initial Search
  740.                                      FYI
  741.  
  742. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  743.  
  744.           TITLE:    ScanSalvagableFiles() Initial Search
  745.    DOCUMENT ID#:    FYI.A.4802
  746.            DATE:    21SEP92
  747.         PRODUCT:    NetWare C Interface DOS
  748. PRODUCT VERSION:    1.2
  749.      SUPERSEDES:    NA
  750.  
  751.        SYMPTOM:    "Value out of Range" compiler warning.
  752.  
  753. ISSUE/PROBLEM    
  754.  
  755.     The parameter entryID in ScanSalvagableFiles requires an initial value of -1 to start the scan for salvageable files.  However, entryID is declared as an unsigned long (LONG) and cannot be assigned a value of -1.
  756.  
  757. SOLUTION    
  758.  
  759.     Declare the parameter as a signed long.  This will cause another compiler warning (suspicious pointer conversion) but will solve the problem.
  760.  
  761.  
  762.  
  763.  
  764. FYI:    NetWare C Interface for DOS ScanProperty Function
  765.                                      FYI
  766.  
  767. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  768.  
  769.           TITLE:    NetWare C Interface for DOS ScanProperty Function
  770.    DOCUMENT ID#:    FYI.A.4501
  771.            DATE:    21SEP92
  772.         PRODUCT:    NetWare C Interface DOS
  773. PRODUCT VERSION:    1.2
  774.      SUPERSEDES:    NA
  775.  
  776.        SYMPTOM:    NA
  777.  
  778. ISSUE/PROBLEM    
  779.  
  780.     The NetWare C Interface for DOS ScanProperties() function contains a moreProperties flag parameter to indicate the presence of additional properties for a given object.  When the ScanProperties function is called, the moreProperties flag may incorrectly indicate that more properties exist when there are no more properties for that object.
  781.  
  782. SOLUTION    
  783.  
  784.     The solution to this problem is to check both the moreProperties flag and the return code from the ScanProperties() function.
  785.  
  786.  
  787.  
  788.  
  789. FYI:    NULL Indexes, Xtrieve PLUS, and NetWare SQL
  790.                                      FYI
  791.  
  792. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  793.  
  794.           TITLE:    NULL Indexes, Xtrieve PLUS, and NetWare SQL
  795.    DOCUMENT ID#:    FYI.A.2428
  796.            DATE:    12SEP92
  797.         PRODUCT:    NetWare SQL
  798. PRODUCT VERSION:    3.00
  799.      SUPERSEDES:    NA
  800.  
  801.        SYMPTOM:    NA
  802.  
  803. ISSUE/PROBLEM    
  804.  
  805.     Currently, Xtrieve for NetWare SQL (v4.11) does not support the NULL index attribute.  In other words, when defining an index, Xtrieve allows the user to specify certain attributes, such as allow duplicates, modifiable, ascending, etc.., but there is not an option for specifying if the index has a NULL value.
  806.  
  807. SOLUTION    
  808.  
  809.     Using NetWare SQL v3.0 there are two ways of creating an index with the NULL attribute: the primitive xDDCreate function or the manager CREATE TABLE statement.  However, neither of these operations allow the user to specify the character that should be used as the NULL value; by default, the null value is always binary zero.
  810.  
  811.  
  812.  
  813.  
  814. FYI:    SET BLANK and xChar() Effect
  815.                                      FYI
  816.  
  817. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  818.  
  819.           TITLE:    SET BLANK and xChar() Effect
  820.    DOCUMENT ID#:    FYI.A.1766
  821.            DATE:    09SEP92
  822.         PRODUCT:    NetWare SQL
  823. PRODUCT VERSION:    3.00
  824.      SUPERSEDES:    NA
  825.  
  826.        SYMPTOM:    Status 204; Status 207
  827.  
  828. ISSUE/PROBLEM    
  829.  
  830.     When a blank replacement character is defined for a NetWare SQL session, table names and field names that were previously defined with that character can not be accessed during that session.  For example, if the table TEST_TABLE is created, and then the SQL statement SET BLANK = "_" is executed, an attempt to access TEST_TABLE will return a status 204 - Table Is Not defined in the Dictionary.  Similarly, attempting to access a field that was defined with an underscore in its name will return a status 207 - Field Does Not Exist in the Dictionary.
  831.  
  832.     In the same manner, if an application calls the xChar Primitive function, table names and field names that were previously defined with the specified blank replacement character can not be accessed during that session.
  833.  
  834. SOLUTION    
  835.  
  836.     Use a blank replacement character that is not being used in any table names or field names in the dictionary being accessed.
  837.  
  838.  
  839.  
  840.  
  841. FYI:    Mask Change Not Effective for Active Views
  842.                                      FYI
  843.  
  844. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  845.  
  846.           TITLE:    Mask Change Not Effective for Active Views
  847.    DOCUMENT ID#:    FYI.A.4701
  848.            DATE:    03SEP92
  849.         PRODUCT:    NetWare SQL
  850. PRODUCT VERSION:    3.00
  851.      SUPERSEDES:    NA
  852.  
  853.        SYMPTOM:    NA
  854.  
  855. ISSUE/PROBLEM    
  856.  
  857.     When a view is active and the mask is changed for a field in the view, the field is not displayed according to the new mask.
  858.  
  859. SOLUTION    
  860.  
  861.     For the mask change to be effective, either the view should be released and recalled or the field should be dropped and re-added to the view.
  862.  
  863.  
  864.  
  865.  
  866. FYI:    CLIB Documentation Error: AFPOpenFileFork()
  867.                                      FYI
  868.  
  869. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  870.  
  871.           TITLE:    CLIB Documentation Error: AFPOpenFileFork()
  872.    DOCUMENT ID#:    FYI.A.3856
  873.            DATE:    03SEP92
  874.         PRODUCT:    Network C for NLMs
  875. PRODUCT VERSION:    SDKd
  876.      SUPERSEDES:    NA
  877.  
  878.        SYMPTOM:    NA
  879.  
  880. ISSUE/PROBLEM    
  881.  
  882.     The compiler gives a type mismatch error for AFPOpenFileFork() NetwareHandle parameter.
  883.  
  884. SOLUTION    
  885.  
  886.     NetwareHandle parameter is documented as a long *; it should be BYTE *.
  887.  
  888.  
  889.  
  890.  
  891. FYI:    SETJMP() Does Not Work
  892.                                      FYI
  893.  
  894. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  895.  
  896.           TITLE:    SETJMP() Does Not Work
  897.    DOCUMENT ID#:    FYI.A.3164
  898.            DATE:    03SEP92
  899.         PRODUCT:    Network C for NLMs
  900. PRODUCT VERSION:    SDKd
  901.      SUPERSEDES:    NA
  902.  
  903.        SYMPTOM:    SETJMP() does not work or causes abend.
  904.  
  905. ISSUE/PROBLEM    
  906.  
  907.     If an NLM application has a #include <cdecl.h> statement after a #include <setjmp.h>, the cdecl #pragma in cdecl.h will override the #pragma in setjmp.h.  This causes the compiler to push the setjmp parameter on the stack, rather than loading it into register EAX, which is what setjmp() is expecting.
  908.  
  909. SOLUTION    
  910.  
  911.     Must put #include <setjmp.h> after #include <cdecl.h>.
  912.  
  913.  
  914.  
  915.  
  916. FYI:    TimedWaitOnLocalSemaphore Has One Last Abend
  917.                                      FYI
  918.  
  919. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  920.  
  921.           TITLE:    TimedWaitOnLocalSemaphore Has One Last Abend
  922.    DOCUMENT ID#:    FYI.A.3163
  923.            DATE:    03SEP92
  924.         PRODUCT:    Network C for NLMs
  925. PRODUCT VERSION:    SDKd
  926.      SUPERSEDES:    NA
  927.  
  928.        SYMPTOM:    Server abends after NLM is unloaded.
  929.  
  930. ISSUE/PROBLEM    
  931.  
  932.     If an NLM uses TimedWaitOnLocalSemaphore, and before the timer expires the NLM is unloaded, the server will abend when the timer expires and CLIB tries to wake up the NLM.  The abend will read something like:
  933.  
  934.         "CFreeUpProcessFromSpecificSemaphore called with invalid process id"
  935.  
  936. SOLUTION    
  937.  
  938.     There is not a general solution for this problem.  The application can implement its own TimedWaitOnLocalSemaphore, using one of the callback functions (this is how CLIB does it), or in some (rare) cases, a sigterm handler can be used, which signals the semaphore so it can come out of the TimedWait.  An API call would also work.  Or, just do not use the TimedWaitOnLocalSemaphore function for now.
  939.  
  940.  
  941.  
  942.  
  943. FYI:    Integer Data Type Description
  944.                                      FYI
  945.  
  946. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  947.  
  948.           TITLE:    Integer Data Type Description
  949.    DOCUMENT ID#:    FYI.A.2517
  950.            DATE:    03SEP92
  951.         PRODUCT:    NetWare SQL
  952. PRODUCT VERSION:    3.00
  953.      SUPERSEDES:    NA
  954.  
  955.        SYMPTOM:    NA
  956.  
  957. ISSUE/PROBLEM    
  958.  
  959.     The description in the NetWare SQL 3.0 Getting Started manual for the integer data type reads:  "An integer data type is a signed or unsigned whole number".  This leads some programmers to the conclusion that any of the three types of integer (1, 2 or 4 bytes) can be signed AND unsigned. Actually, only the one byte integer is treated as unsigned; two and four byte integers are always treated as signed.
  960.  
  961. SOLUTION    
  962.  
  963.     NA
  964.  
  965.  
  966.  
  967.  
  968. FYI:    Problem with AIOWriteData
  969.                                      FYI
  970.  
  971. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  972.  
  973.           TITLE:    Problem with AIOWriteData
  974.    DOCUMENT ID#:    FYI.A.4123
  975.            DATE:    02SEP92
  976.         PRODUCT:    Network C for NLMs
  977. PRODUCT VERSION:    SDKd
  978.      SUPERSEDES:    NA
  979.  
  980.        SYMPTOM:    NA
  981.  
  982. ISSUE/PROBLEM    
  983.  
  984.     The documentation for AIOWriteData() mentions that the function does not succeed unless the entire requested data length can be copied to the transmit buffer all at once.  However this is not the case.  AIOWriteData() will allow partial writes.
  985.  
  986. SOLUTION    
  987.  
  988.     This is an error in the documentation.  AIOWriteData() will allow partial writes, in which case the unsent characters would have to be resent.
  989.  
  990.  
  991.  
  992.  
  993. FYI:    Status 4 Can Be Returned on Insert
  994.                                      FYI
  995.  
  996. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  997.  
  998.           TITLE:    Status 4 Can Be Returned on Insert
  999.    DOCUMENT ID#:    FYI.A.1946
  1000.            DATE:    02SEP92
  1001.         PRODUCT:    NetWare SQL
  1002. PRODUCT VERSION:    3.00
  1003.      SUPERSEDES:    NA
  1004.  
  1005.        SYMPTOM:    Status 4
  1006.  
  1007. ISSUE/PROBLEM    
  1008.  
  1009.     Inserting a record into a table defined in the dictionary returned a status 4 (Key Value Not Found).  The table to which the record was being inserted was a dependent table (Referential Integrity enabled).
  1010.  
  1011. SOLUTION    
  1012.  
  1013.     On inspection, it was found that the parent table's table-ID (a field in the NetWare SQL dictionaries) was different than when the two tables were originally created.  When doing the insert to the dependent table, NetWare SQL was attempting to enforce referential integrity constraints, based upon the original table-ID of the parent table.  However, this table-ID was no longer a valid table-ID, hence the status 4.
  1014.  
  1015.     It was later discovered, that before the insert was attempted, Referential Integrity had been disabled for the database, the parent table had been dropped, and re-created with slightly different characteristics.  When the table (parent) was re-created, the table-ID that was assigned to it by NetWare SQL 3.0 was different from the one originally assigned to it.  This hypothesis was confirmed by running RIUTIL with the /R option; an error similar to the following was returned:
  1016.  
  1017.                     "Table ID = 122 not found in FILE.DDF"
  1018.  
  1019.     A solution to this problem is to drop both tables and re-create them.  This may cause new problems if there were other tables in the dictionary that were related to these two tables.
  1020.  
  1021.     A better solution to this problem is to run RIUTIL with the /R option to obtain the original table-ID of the parent table and then update the value of table-ID (for the parent table) in FILE.DDF (the first field of X$File).  This field is a non-modifiable key in FILE.DDF; so the only way to change the value is to use BUTIL to RECOVER all the records from FILE.DDF, then delete all records from FILE.DDF, then modify the value in the sequential file, and finally LOAD the records back into FILE.DDF.
  1022.  
  1023.  
  1024.  
  1025.  
  1026. FYI:    Gupta SQL Router Compatibility
  1027.                                      FYI
  1028.  
  1029. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1030.  
  1031.           TITLE:    Gupta SQL Router Compatibility
  1032.    DOCUMENT ID#:    FYI.A.1873
  1033.            DATE:    01SEP92
  1034.         PRODUCT:    NetWare SQL
  1035. PRODUCT VERSION:    3.00
  1036.      SUPERSEDES:    NA
  1037.  
  1038.        SYMPTOM:    NA
  1039.  
  1040. ISSUE/PROBLEM    
  1041.  
  1042.     The Gupta SQL Router that ships with NetWare SQL version 3.0 is compatible with Gupta's SQL Windows development kit version 3.0.x.  It is not compatible with Gupta's SQL Windows 3.1.x.
  1043.  
  1044. SOLUTION    
  1045.  
  1046.     NA
  1047.  
  1048.  
  1049.  
  1050.  
  1051. FYI:    Status 2108 Returned by the NSUTIL.NLM
  1052.                                      FYI
  1053.  
  1054. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1055.  
  1056.           TITLE:    Status 2108 Returned by the NSUTIL.NLM
  1057.    DOCUMENT ID#:    FYI.A.1765
  1058.            DATE:    01SEP92
  1059.         PRODUCT:    NetWare SQL
  1060. PRODUCT VERSION:    3.00
  1061.      SUPERSEDES:    NA
  1062.  
  1063.        SYMPTOM:    Status 2108 when importing/exporting data with NSUTIL.NLM
  1064.  
  1065. ISSUE/PROBLEM    
  1066.  
  1067.     When trying to use the server version of the NetWare SQL Maintenance Utility (NSUTIL.NLM) to perform a BLOAD, COPY, LOAD, or SAVE, a status 2108 "Device Is Not Assigned to a File Server" will be returned if the dictionary location of the table(s) involved contain drive letters.
  1068.  
  1069. SOLUTION    
  1070.  
  1071.     Change the dictionary so that the location (i.e. Btrieve file name) of each table consists only of the file name, or an absolute path to the file name. Alternately, use the client version of NSUTIL on a DOS or OS/2 workstation.
  1072.  
  1073.  
  1074.  
  1075.  
  1076. FYI:    XQLExec with SELECT Statement
  1077.                                      FYI
  1078.  
  1079. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1080.  
  1081.           TITLE:    XQLExec with SELECT Statement
  1082.    DOCUMENT ID#:    FYI.A.2519
  1083.            DATE:    31AUG92
  1084.         PRODUCT:    NetWare SQL
  1085. PRODUCT VERSION:    3.00
  1086.      SUPERSEDES:    NA
  1087.  
  1088.        SYMPTOM:    XQLExec is not necessary for SELECT statement.
  1089.  
  1090. ISSUE/PROBLEM    
  1091.  
  1092.     In the XQL 2.11 Programmer's manual the line "Using substitution variables always requires three function calls" leads programmers to believe that XQLExec is needed.  In the NetWare SQL 3.0 Application Programmer's Interface manual, the line "You must always use the following function calls when executing statements that contain substitution variables:" gives the same impression.
  1093.  
  1094.     If the statement compiled is a SELECT statement with substitution variables, only the XQLSubst function needs to be called before calling the XQLFetch function.  XQLExec must be called after XQLSubst for other types of statements, such as INSERT, UPDATE, DELETE, etc. in order to actually perform the requested operation.
  1095.  
  1096. SOLUTION    
  1097.  
  1098.     NA
  1099.  
  1100.  
  1101.  
  1102.  
  1103. FYI:    Status 313 Using Embedded SQL Transactions
  1104.                                      FYI
  1105.  
  1106. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1107.  
  1108.           TITLE:    Status 313 Using Embedded SQL Transactions
  1109.    DOCUMENT ID#:    FYI.A.2518
  1110.            DATE:    31AUG92
  1111.         PRODUCT:    NetWare SQL
  1112. PRODUCT VERSION:    3.00
  1113.      SUPERSEDES:    Continuation of FYI.A.1737
  1114.  
  1115.        SYMPTOM:    Status 313 on start transaction call using Embedded SQL 3.0
  1116.  
  1117. ISSUE/PROBLEM    
  1118.  
  1119.     If an EXEC SQL START TRANSACTION statement is executed in an embedded SQL program, followed by an EXEC SQL COMMIT WORK statement, the next attempt to start a transaction will return a status 313 - Transaction already started.
  1120.  
  1121. SOLUTION    
  1122.  
  1123.     The workaround mentioned in FYI.A.1737 (written when the same problem was found with version 2.11 of XQL/NetWare SQL) still applies.  Use the following statements to control explicit transaction processing in an embedded SQL program:
  1124.  
  1125.       EXEC SQL EXECUTE IMMEDIATE "START TRANSACTION";
  1126.       EXEC SQL EXECUTE IMMEDIATE "COMMIT WORK";
  1127.       EXEC SQL EXECUTE IMMEDIATE "ROLLBACK WORK";
  1128.  
  1129.  
  1130.  
  1131.  
  1132. FYI:    Closing Files in a Transaction
  1133.                                      FYI
  1134.  
  1135. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1136.  
  1137.           TITLE:    Closing Files in a Transaction
  1138.    DOCUMENT ID#:    FYI.A.1874
  1139.            DATE:    31AUG92
  1140.         PRODUCT:    Btrieve
  1141. PRODUCT VERSION:    5.x
  1142.      SUPERSEDES:    NA
  1143.  
  1144.        SYMPTOM:    Status 41
  1145.  
  1146. ISSUE/PROBLEM    
  1147.  
  1148.     If a file is opened in read only mode during a transaction then that file is not treated as being in the transaction.  Other users can update, delete and insert into the file.  If that is the case, can you close the file in the transaction?
  1149.  
  1150. SOLUTION    
  1151.  
  1152.     In the client environment (Btrieve for Dos version 5.10a ) a status 41, Operation Not Allowed, is returned if the application attempts to close the file.  In the client-server environment ( Btrieve NLM version 6.0 ) the close is allowed in the transaction.  The book does document that closing a file in a transaction is an invalid operation so the status 41, in the client environment, is a valid status code.
  1153.  
  1154.  
  1155.  
  1156.  
  1157. FYI:    Data Types for Group Aggregates
  1158.                                      FYI
  1159.  
  1160. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1161.  
  1162.           TITLE:    Data Types for Group Aggregates
  1163.    DOCUMENT ID#:    FYI.A.1764
  1164.            DATE:    31AUG92
  1165.         PRODUCT:    NetWare SQL
  1166. PRODUCT VERSION:    3.00
  1167.      SUPERSEDES:    NA
  1168.  
  1169.        SYMPTOM:    NA
  1170.  
  1171. ISSUE/PROBLEM    
  1172.  
  1173.     The data types returned by the various group aggregates available for an SQL SELECT statement vary depending on the data type of the field and the type of aggregate.  This is important to know when fetching the data in its internal format, since a data buffer must be set up properly to receive the data.
  1174.  
  1175.     For the COUNT group aggregate, the data will always be returned as a 4-byte integer.  For the MAX and MIN aggregates, the data will be returned as the same data type and length as the field used for the aggregate.  For the SUM and AVG group aggregates, the data type returned varies for different field data types.  Following is a chart explaining what is returned.
  1176.  
  1177.       field data type   SUM or AVG data type
  1178.       --------------------------------------
  1179.       autoinc               float(8)
  1180.       bfloat                float(8)
  1181.       bit                   float(8)
  1182.       decimal(x,y)          decimal(10,y)
  1183.       float                 float(8)
  1184.       integer               float(8)
  1185.       logical               float(8)
  1186.       money(x,2)            money(10,2)
  1187.       numeric(x,y)          numeric(15,y)
  1188.       numericsts(x,y)       numericsts(15,y)
  1189.  
  1190.     Notice that Decimal, Money, Numeric, and NumericSTS all return the same data type as the field, except the size is the maximum allowable size for that data type (10 for decimal and money, 15 for numeric and numericsts). All other data types result in an 8-byte float being returned.
  1191.  
  1192.     The above information is true for NetWare SQL version 3.0.  With XQL/NetWare SQL version 2.11, SUM and AVG always returned an 8-byte float value.
  1193.  
  1194. SOLUTION    
  1195.  
  1196.     NA
  1197.  
  1198.  
  1199.  
  1200.  
  1201. FYI:    CheckPipeStatus() Does Not Return Correct Status
  1202.                                      FYI
  1203.  
  1204. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1205.  
  1206.           TITLE:    CheckPipeStatus() Does Not Return Correct Status
  1207.    DOCUMENT ID#:    FYI.A.4804
  1208.            DATE:    28AUG92
  1209.         PRODUCT:    NetWare C Interface DOS
  1210. PRODUCT VERSION:    1.20
  1211.      SUPERSEDES:    NA
  1212.  
  1213.        SYMPTOM:    CheckPipeStatus() does not return an "Incomplete Pipe" status (0xFE) when an incomplete pipe exists between host and target stations. It returns a "Failure" status (0xFF) instead.
  1214.  
  1215. ISSUE/PROBLEM    
  1216.  
  1217.     The "Incomplete Pipe" status (0xFE) is not a valid result for CheckPipeStatus().
  1218.  
  1219. SOLUTION    
  1220.  
  1221.     Do not expect an "Incomplete Pipe" (0xFE) status from CheckPipeStatus().  A "Failure" status (0xFF) is returned instead.
  1222.  
  1223. FYI:    Memory Fault with t_errno
  1224.                                      FYI
  1225.  
  1226. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1227.  
  1228.           TITLE:    Memory Fault with t_errno
  1229.    DOCUMENT ID#:    FYI.A.3855
  1230.            DATE:    28AUG92
  1231.         PRODUCT:    Network C for NLMs
  1232. PRODUCT VERSION:    SDKd
  1233.      SUPERSEDES:    NA
  1234.  
  1235.        SYMPTOM:    NA
  1236.  
  1237. ISSUE/PROBLEM    
  1238.  
  1239.     Accessing t_errno (TLI errno) from an NLM gives Read memory Fault if the NLM is run under PROTECT.NLM.
  1240.  
  1241. SOLUTION    
  1242.  
  1243.     Just ignore this error. PROTECT.NLM is not supposed to give this error.
  1244.  
  1245.  
  1246.  
  1247.  
  1248. FYI:    Status -103 on Update Statement
  1249.                                      FYI
  1250.  
  1251. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1252.  
  1253.           TITLE:    Status -103 on Update Statement
  1254.    DOCUMENT ID#:    FYI.A.3019
  1255.            DATE:    28AUG92
  1256.         PRODUCT:    NetWare SQL
  1257. PRODUCT VERSION:    3.00
  1258.      SUPERSEDES:    NA
  1259.  
  1260.        SYMPTOM:    Status -103 returned on Update statement when no records are updated.
  1261.  
  1262. ISSUE/PROBLEM    
  1263.  
  1264.     NetWare SQL/XQL returns the informative status code -103 (UPDATE Statement Completed Successfully) on Update statements even thought there is no record satisfying the restriction.  In other words, the following statement returns status -103 when there is no record with Appointment^Code = 1.
  1265.  
  1266.       UPDATE Appointment
  1267.       SET Appointment^Date = 01/25/92
  1268.       WHERE Appointment^Code = 1
  1269.  
  1270. SOLUTION    
  1271.  
  1272.     This is a valid status code since the Update statement did not fail.  It simply could not find any records matching the restriction.  If the application must know if a record has been updated, the application needs to execute XQLStatus.  The XQLStatus function will return the number of records updated and number of records rejected.
  1273.  
  1274.  
  1275.  
  1276.  
  1277. FYI:    QUEST and the NetWare SQL Gupta SQL Router
  1278.                                      FYI
  1279.  
  1280. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1281.  
  1282.           TITLE:    QUEST and the NetWare SQL Gupta SQL Router
  1283.    DOCUMENT ID#:    FYI.A.1875
  1284.            DATE:    28AUG92
  1285.         PRODUCT:    NetWare SQL
  1286. PRODUCT VERSION:    3.00
  1287.      SUPERSEDES:    NA
  1288.  
  1289.        SYMPTOM:    NA
  1290.  
  1291. ISSUE/PROBLEM    
  1292.  
  1293.     The Gupta SQL Router which ships with NetWare SQL 3.0 does NOT support QUEST.
  1294.  
  1295. SOLUTION    
  1296.  
  1297.     NA
  1298.  
  1299.  
  1300.  
  1301.  
  1302. FYI:    BSPXCOM Running Out of Sessions
  1303.                                      FYI
  1304.  
  1305. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1306.  
  1307.           TITLE:    BSPXCOM Running Out of Sessions
  1308.    DOCUMENT ID#:    FYI.A.1871
  1309.            DATE:    28AUG92
  1310.         PRODUCT:    NetWare Btrieve NLM
  1311. PRODUCT VERSION:    5.x
  1312.      SUPERSEDES:    NA
  1313.  
  1314.        SYMPTOM:    Status 91, Status 95
  1315.  
  1316. ISSUE/PROBLEM    
  1317.  
  1318.     BSPXCOM.NLM will appear to hang after running out of sessions if users continuously try to obtain an SPX session with BTRIEVE after exceeding the limit.  The workstation can receive status 95, Session No Longer Valid, or 91, Server Error.  This is true for the 5.x and 6.0 NetWare Btrieve environments.  Once this occurs BTRIEVE must be stopped and reloaded at the server.
  1319.  
  1320. SOLUTION    
  1321.  
  1322.     Load the NetWare patch SPXFIX1.NLM.
  1323.  
  1324.  
  1325.  
  1326.  
  1327. FYI:    MAC Support and the DESKTOP.AFP Directory
  1328.                                      FYI
  1329.  
  1330. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1331.  
  1332.           TITLE:    MAC Support and the DESKTOP.AFP Directory
  1333.    DOCUMENT ID#:    FYI.A.2674
  1334.            DATE:    27AUG92
  1335.         PRODUCT:    NetWare Operating System
  1336. PRODUCT VERSION:    3.x
  1337.      SUPERSEDES:    NA
  1338.  
  1339.        SYMPTOM:    Should the DESKTOP.AFP subdirectory ever be restored
  1340.                      from a Backup?
  1341.  
  1342. ISSUE/PROBLEM    
  1343.  
  1344.     For MAC support on NetWare the AFP.NLM keeps a set of files in a hidden directory on the SYS: volume named DESKTOP.AFP.  This directory consists of several files used to store the information where MAC files can find their supporting utilities and other information.  It is very relevant to how and where the programs and files reside on the volumes and thus, must be maintained precisely.
  1345.  
  1346.     To restore the DESKTOP.AFP directory from a backup, the AFP.NLM must first be unloaded.  Such a restore is not recommended since if any files and AFP related programs (utilities) have been moved or deleted, the DESKTOP will not contain correct and timely information with respect to the current configuration.
  1347.  
  1348.     It is recommended to REBUILD the DESKTOP from a MAC workstation itself. The MAC will update the DESKTOP to reflect the current directory setup and where it may find the pertinent programs and files.
  1349.  
  1350. SOLUTION    
  1351.  
  1352.     Use the MAC capability to rebuild the DESKTOP instead of restoring from backup.
  1353.  
  1354.  
  1355.  
  1356.  
  1357. FYI:    Is VIPX.386 Loaded for Windows 3.x?
  1358.                                      FYI
  1359.  
  1360. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1361.  
  1362.           TITLE:    Is VIPX.386 Loaded for Windows 3.x?
  1363.    DOCUMENT ID#:    FYI.A.2670
  1364.            DATE:    27AUG92
  1365.         PRODUCT:    NetWare C for Windows
  1366. PRODUCT VERSION:    1.22
  1367.      SUPERSEDES:    NA
  1368.  
  1369.        SYMPTOM:    Is VIPX.386 loaded?
  1370.  
  1371. ISSUE/PROBLEM    
  1372.  
  1373.     This is in amendment to a previous FYI on checking if VIPX.386 is loaded. Numerous requests for the complete API were made and it is summarized below.
  1374.  
  1375.     To check if VIPX.386 is loaded requires an interrupt line 2F call.
  1376.  
  1377.                AX = 1684h
  1378.                BX = 0200h
  1379.  
  1380.     On return ES:DI will both be 0 if VIPX.386 is "NOT" loaded.  Any other values seem to dictate that VIPX "IS" loaded.
  1381.  
  1382.     Example Borland C++ code:
  1383.        |
  1384.       |
  1385.       insertIntoListBox("Calling INT 2F - ax = 1684h, bx = 0200h....");
  1386.  
  1387.       asm {
  1388.       push   es
  1389.       push   di
  1390.       push   ax
  1391.       push   bx
  1392.       mov    ax, 0x1684
  1393.       mov    bx, 0x0200
  1394.       int    2fh
  1395.  
  1396.       mov   ax, es
  1397.       mov   ESrc, ax
  1398.       mov   ax, di
  1399.       mov   DIrc, ax
  1400.       pop   ax
  1401.       pop   bx
  1402.       pop   di
  1403.       pop   es
  1404.       }
  1405.  
  1406.       insertIntoListBox("es:di = %d:%d",ESrc, DIrc);
  1407.       if (ESrc + DIrc)
  1408.          insertIntoListBox("VIPX.386 IS loaded");
  1409.       else
  1410.          insertIntoListBox("***** VIPX.386 NOT loaded *****");
  1411.       |
  1412.       |
  1413.          ------------------------------------------------
  1414.  
  1415. SOLUTION    
  1416.  
  1417.     NA
  1418.  
  1419.  
  1420.  
  1421.  
  1422. FYI:    SET NCPFILE Console Command and Btrieve for DOS Performance
  1423.                                      FYI
  1424.  
  1425. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1426.  
  1427.           TITLE:    SET NCPFILE Console Command and Btrieve for DOS Performance
  1428.    DOCUMENT ID#:    FYI.A.2116
  1429.            DATE:    27AUG92
  1430.         PRODUCT:    Btrieve for DOS
  1431. PRODUCT VERSION:    All Versions
  1432.      SUPERSEDES:    NA
  1433.  
  1434.        SYMPTOM:    Btrieve performance increased up to 300%.
  1435.  
  1436. ISSUE/PROBLEM    
  1437.  
  1438.     A user who was using Btrieve for DOS with NetWare 3.11, by chance, changed the SET NCPFILE = OFF at the server console.  Then the user noticed that the performance of Btrieve WRITE operations increased tremendously, up to 300 percent.
  1439.  
  1440. SOLUTION    
  1441.  
  1442.     Btrieve for DOS uses an undocumented DOS call (COMMIT) which forces synchronization of Disk I/O requests by requiring a confirmation reply back from the server that a previous WRITE request was actually written to disk before continuing with other requests.  Thus, the default setting for the NCPFILE is ON.  By changing this default setting by executing SET NCPFILE = OFF at the server console, the server will send a confirmation reply immediately upon RECEIPT of a WRITE request from Btrieve (causing the server to "LIE" to Btrieve).
  1443.  
  1444.     However, the WRITE request is not actually written to disk, but queued in server cache and written to disk when most convenient.  This confirmation causes Btrieve not to wait and continue on to other requests, thus, significantly increasing write operation performance.  This is very much like opening a Btrieve file in accelerated mode and is not really recommended unless the server has a very reliable UPS.
  1445.  
  1446.  
  1447.  
  1448.  
  1449. FYI:    Numeric and NumericSTS Data Types
  1450.                                      FYI
  1451.  
  1452. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1453.  
  1454.           TITLE:    Numeric and NumericSTS Data Types
  1455.    DOCUMENT ID#:    FYI.A.1763
  1456.            DATE:    27AUG92
  1457.         PRODUCT:    NetWare SQL
  1458. PRODUCT VERSION:    3.0
  1459.      SUPERSEDES:    NA
  1460.  
  1461.        SYMPTOM:    NA
  1462.  
  1463. ISSUE/PROBLEM    
  1464.  
  1465.     The "Getting Started" manual included with NetWare SQL 3.0 contains descriptions for all the data types supported.  The description of the numeric and numericsts types contain the statement:
  1466.  
  1467.         "The total display size required for a numeric [numericsts] field is equal to the maximum number of significant digits plus 1 for a decimal point and 1 for a possible sign."
  1468.  
  1469.     This is a little confusing since it sounds like the decimal point is being stored as part of the data.  However, the description above is referring to the "display size", not the internal storage.
  1470.  
  1471.     If a table is created with a numeric(10,2) field, this will use 10 bytes of the record, where each digit takes up one byte.  The decimal point is not actually stored, but is instead implied to be two bytes from the right of the 10 bytes.  So, the longest data value that can be inserted is 12345678.99, which is 10 digits long.
  1472.  
  1473.     Data values that use less than 10 digits will be 0 padded on the left hand side.  Negative numbers follow the same rules, except that the sign is encoded into the right-most byte.  The table below includes several examples of how numeric data is stored.
  1474.  
  1475.          Data Value        Internal Format (10 bytes)
  1476.         ------------       ---------------
  1477.          12345678.99         1234567899
  1478.         -12345678.99         123456789R
  1479.               100.50         0000010050
  1480.     
  1481.  
  1482.     Refer to the Getting Started manual for a complete list of special characters used to encode negative numbers.
  1483.  
  1484.     Similarly, if a table is created with a numericsts(10,2) field, this will also use 10 bytes of the record, where each digit takes up one byte. However, the right most byte is reserved for a sign, leaving only 9 bytes available to store data digits.  The decimal point is still not stored, and is implied to be two bytes from the right of the right most digit, which is three bytes from the right of the total field due to the sign byte.  So, the longest data value that can be inserted into this field is 1234567.99, which is 9 digits long.  The table below includes several examples of how numericsts data is stored.
  1485.  
  1486.          Data Value        Internal Format (10 bytes)
  1487.         ------------       ---------------
  1488.          1234567.99          123456799+
  1489.         -1234567.99          123456799-
  1490.              100.50          000010050+
  1491.  
  1492. SOLUTION    
  1493.  
  1494.     NA
  1495.  
  1496.  
  1497.  
  1498.  
  1499. FYI:    The XQLStatus SQL-Level Function and Microsoft BASIC PDS 7.X
  1500.                                      FYI
  1501.  
  1502. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1503.  
  1504.           TITLE:    The XQLStatus SQL-Level Function and Microsoft BASIC PDS 7.X
  1505.    DOCUMENT ID#:    FYI.A.2118
  1506.            DATE:    26AUG92
  1507.         PRODUCT:    NetWare SQL
  1508. PRODUCT VERSION:    3.0
  1509.      SUPERSEDES:    NA
  1510.  
  1511.        SYMPTOM:    Status Buffer returns nothing
  1512.  
  1513. ISSUE/PROBLEM    
  1514.  
  1515.     The XQLStatus Manager Level Call provides information about the last SQL statement that was executed. This call requires three parameters with the following options:
  1516.  
  1517.       CALL XQLSTATUS(iStatus%, iCursorID%, iOption%, sStatBuf$)
  1518.  
  1519.       where:
  1520.  
  1521.       iOption = 0 ----->    requires that the Status Buffer be at least 8-bytes long or two 4-byte integers.  On certain SQL statements(SELECT, UPDATE, DELETE or INSERT), NetWare SQL will return the number of records selected in the first 4 bytes followed by a reject count in the next 4 bytes, otherwise, it will return a 0 for both values.
  1522.  
  1523.       iOption = 1 ----->    request more detailed information about a non-zero status code returned on a previous SQL call.  This requires that the status buffer be at least 30 bytes long.
  1524.  
  1525.     It is obvious, that if option 0 is used, the logical way to set up this status buffer is to create a structure containing two LONG variables types. In Microsoft BASIC PDS 7.X, this is accomplished using the TYPE and END TYPE statements:
  1526.  
  1527.      TYPE StatBuffer
  1528.        SelectCount AS Long
  1529.        RejectCount AS Long
  1530.      END TYPE
  1531.      DIM sStatBuf As StatBuffer
  1532.  
  1533.     However, if this structure is passed in the XQLStatus call using the appropriate calling convention as specified by the NWSQLBA7.OBJ interface, a status 0 is returned on the call, but no values are returned in the status buffer.
  1534.  
  1535. SOLUTION    
  1536.  
  1537.     A User-Defined TYPE structure cannot be defined and passed as the status buffer parameter using the NWSQLBA7.OBJ interface.  All the assembly level calls associated with this parameter are string operations.  Therefore an empty 8-byte variable length string must be defined for the status buffer parameter.  Upon a successful return code, this string variable can then be parsed to extract the appropriate integer values.  The following is a suggested procedure for accomplishing this:
  1538.  
  1539.      iOption%  = 0
  1540.      sStatBuf$ = SPACE$(8)
  1541.  
  1542.      CALL XQLStatus (iStatus%, iCursorID%, iOption, sStatBuf$)
  1543.  
  1544.      IF iStatus% = 0 THEN
  1545.        PRINT "XQLStatus Successful!"
  1546.      ELSE
  1547.        PRINT "Error in XQLStatus. Status = "; iStatus%
  1548.      END IF
  1549.      SelectCount& = CVL(MID$(sStatBuf$,1,4))
  1550.      RejectCount& = CVL(MID$(sStatBuf$,5,4))
  1551.  
  1552.  
  1553.  
  1554.  
  1555. FYI:    /fpc Compiler Switches for WATCOM/386
  1556.                                      FYI
  1557.  
  1558. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1559.  
  1560.           TITLE:    /fpc Compiler Switches for WATCOM/386
  1561.    DOCUMENT ID#:    FYI.A.2671
  1562.            DATE:    24AUG92
  1563.         PRODUCT:    Network C for NLMs
  1564. PRODUCT VERSION:    2.0
  1565.      SUPERSEDES:    NA
  1566.  
  1567.        SYMPTOM:    Abends on floating point divisions when /fpc switch is used.
  1568.  
  1569. ISSUE/PROBLEM    
  1570.  
  1571.     This is just a reminder that when building NLMs, do not use the /fpc switch.  This was intended for "linking in the emulation code" with the application.  The emulation code for the NLM SDKs is in CLIB.
  1572.  
  1573.     If /fpc is used, server abends may result.
  1574.  
  1575. SOLUTION    
  1576.  
  1577.     Do not use the /fpc switch when building NLMs.
  1578.  
  1579.  
  1580.  
  1581.  
  1582. FYI:    Accidentally Linking with CLIB3S
  1583.                                      FYI
  1584.  
  1585. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1586.  
  1587.           TITLE:    Accidentally Linking with CLIB3S
  1588.    DOCUMENT ID#:    FYI.A.3162
  1589.            DATE:    21AUG92
  1590.         PRODUCT:    Network C for NLMs
  1591. PRODUCT VERSION:    SDKd
  1592.      SUPERSEDES:    NA
  1593.  
  1594.        SYMPTOM:    Server Abend, or just incorrect results
  1595.  
  1596. ISSUE/PROBLEM    
  1597.  
  1598.     If a symbol NOT in CLib is referenced in an OBJ, and it happens that the symbol is in the DOS static library CLIB3S, WLINK will not only pull in the definition for the DOS function, but will also pull in other modules that contain symbols referenced by that object module.
  1599.  
  1600.     For example:  The API dup() was referenced by an NLM, and not only was dup() pulled in, but unlink(), __get_errno_ptr(), and a host of other APIs were too.  This will cause many undesirable results!  If an interrupt line 21 is executed, the server will abend, making the problem very easy to resolve.  However, other much more subtle bugs might go unnoticed.  One case was a DOS API failing with -1, but errno showing 0, since the errno from a library module was getting set instead of CLibs thread errno!
  1601.  
  1602. SOLUTION    
  1603.  
  1604.     Always use Option NOD when linking.  This keeps WLINK from searching the libraries whose names are imbedded into the OBJs.  Or, do not set the LIB386 environment variable; that way the LINKER cannot find the DOS libraries.
  1605.  
  1606.  
  1607.  
  1608.  
  1609. FYI:    Date Masks in Xtrieve Reports
  1610.                                      FYI
  1611.  
  1612. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1613.  
  1614.           TITLE:    Date Masks in Xtrieve Reports
  1615.    DOCUMENT ID#:    FYI.A.1762
  1616.            DATE:    17AUG92
  1617.         PRODUCT:    Xtrieve Plus
  1618. PRODUCT VERSION:    4.10
  1619.      SUPERSEDES:    NA
  1620.  
  1621.        SYMPTOM:    NA
  1622.  
  1623. ISSUE/PROBLEM    
  1624.  
  1625.     Currently, there is no way to put a mask on the date that prints as a result of the @date text directive in an Xtrieve report.  The date will always print using the mask mm/dd/yy (i.e. 08/17/92).
  1626.  
  1627. SOLUTION    
  1628.  
  1629.     As a workaround, add a User-Defined date field to the view, and specify CURRENT as its definition.  This field will always have the Current date, and when placing this field on the report, the user will be prompted to specify a mask.
  1630.  
  1631.  
  1632.  
  1633.  
  1634. FYI:    EVENT_TRUSTEE_CHANGE Not Triggered
  1635.                                      FYI
  1636.  
  1637. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1638.  
  1639.           TITLE:    EVENT_TRUSTEE_CHANGE Not Triggered
  1640.    DOCUMENT ID#:    FYI.A.3854
  1641.            DATE:    14AUG92
  1642.         PRODUCT:    Network C for NLMs
  1643. PRODUCT VERSION:    SDKd
  1644.      SUPERSEDES:    NA
  1645.  
  1646.        SYMPTOM:    NA
  1647.  
  1648. ISSUE/PROBLEM    
  1649.  
  1650.     If an NLM registers for the EVENT_TRUSTEE_CHANGE through CLIB.NLM, the event is not raised every time a trustee is deleted.  However, the event is raised when a trustee is added.
  1651.  
  1652. SOLUTION    
  1653.  
  1654.     This is a problem with the Operating System and not with CLIB.  Right now there is no workaround available.
  1655.  
  1656.  
  1657.  
  1658.  
  1659. FYI:    IPXYield() Warning Messages
  1660.                                      FYI
  1661.  
  1662. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1663.  
  1664.           TITLE:    IPXYield() Warning Messages
  1665.    DOCUMENT ID#:    FYI.A.3853
  1666.            DATE:    14AUG92
  1667.         PRODUCT:    NetWare C for Windows
  1668. PRODUCT VERSION:    1.3
  1669.      SUPERSEDES:    NA
  1670.  
  1671.        SYMPTOM:    NA
  1672.  
  1673. ISSUE/PROBLEM    
  1674.  
  1675.     Windows 3.1 debug version of the kernel gives the following warning messages for IPXYield() (Netware C for Windows internal API):
  1676.  
  1677.     1.    Register class: invalid h instance
  1678.     2.    Register class: windows procedure not exported
  1679.     3.    Create Window:  null instance handle
  1680.  
  1681. SOLUTION    
  1682.  
  1683.     No solution is available right now to get rid of these warnings.
  1684.  
  1685.  
  1686.  
  1687.  
  1688. FYI:    SetLockMode Fails
  1689.                                      FYI
  1690.  
  1691. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1692.  
  1693.           TITLE:    SetLockMode Fails
  1694.    DOCUMENT ID#:    FYI.A.3380
  1695.            DATE:    13AUG92
  1696.         PRODUCT:    NetWare C Interface DOS
  1697. PRODUCT VERSION:    1.2
  1698.      SUPERSEDES:    NA
  1699.  
  1700.        SYMPTOM:     Set Lock Mode fails when used against a 3.11 server.
  1701.  
  1702. ISSUE/PROBLEM    
  1703.  
  1704.     SetLockMode failed when used against a 3.11 file server.  The user was using the 3.02 shell.
  1705.  
  1706. SOLUTION    
  1707.  
  1708.     Upgrading to the 3.26a shell resolved the problem.
  1709.  
  1710.  
  1711. FYI:    NetWare for SAA
  1712.                                      FYI
  1713.  
  1714. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1715.  
  1716.           TITLE:    NetWare for SAA
  1717.    DOCUMENT ID#:    FYI.A.2838
  1718.            DATE:    13AUG92
  1719.         PRODUCT:    3270 Tools for DOS
  1720. PRODUCT VERSION:    1.2
  1721.      SUPERSEDES:    NA
  1722.  
  1723.        SYMPTOM:    # Processes did not relinquish frequently while loading
  1724.                      COMMEXEC.NLM
  1725.  
  1726. ISSUE/PROBLEM    
  1727.  
  1728.     The COMMEXEC.NLM autoloads NMAGENT.NLM.  This sometimes gives the following message:
  1729.  
  1730.         "# of processes did not relinquish frequently" 
  1731.  
  1732.     The number is not consistent.
  1733.  
  1734. SOLUTION    
  1735.  
  1736.     Loading NMAGENT.NLM before the COMMEXEC.NLM gets rid of these spurious messages.
  1737.  
  1738.  
  1739.  
  1740.  
  1741. FYI:    User Limit when Using DAL Server
  1742.                                      FYI
  1743.  
  1744. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1745.  
  1746.           TITLE:    User Limit when Using DAL Server
  1747.    DOCUMENT ID#:    FYI.A.1940
  1748.            DATE:    13AUG92
  1749.         PRODUCT:    NetWare SQL
  1750. PRODUCT VERSION:    3.0
  1751.      SUPERSEDES:    NA
  1752.  
  1753.        SYMPTOM:    NA
  1754.  
  1755. ISSUE/PROBLEM    
  1756.  
  1757.     The number of users accessing NetWare SQL version 3.0 through the DAL Server NLM is limited to 200, even if the 250-user version of NetWare SQL 3.0 is being used.
  1758.  
  1759.     This restriction is actually due to a limitation in the current version of the AppleTalk NLM (200 users).
  1760.  
  1761. SOLUTION    
  1762.  
  1763.     NA
  1764.  
  1765.  
  1766.  
  1767.  
  1768. FYI:    Problem with Option Copyright
  1769.                                      FYI
  1770.  
  1771. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1772.  
  1773.           TITLE:    Problem with Option Copyright
  1774.    DOCUMENT ID#:    FYI.A.4122
  1775.            DATE:    12AUG92
  1776.         PRODUCT:    Network C for NLMs
  1777. PRODUCT VERSION:    SDKa
  1778.      SUPERSEDES:    NA
  1779.  
  1780.        SYMPTOM:    NA
  1781.  
  1782. ISSUE/PROBLEM    
  1783.  
  1784.     WLINK 6.0 that goes out with the Network C for NLMs SDKa does not support the copyright option. This will give a "Directive error near the option copyright" error.
  1785.  
  1786. SOLUTION    
  1787.  
  1788.     Use WLINK 7.0 or higher that goes out with SDKb. This will support the copyright option.
  1789.  
  1790.  
  1791.  
  1792.  
  1793. FYI:    Missing DOS Examples in LU6.2 Kit
  1794.                                      FYI
  1795.  
  1796. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1797.  
  1798.           TITLE:    Missing DOS Examples in LU6.2 Kit
  1799.    DOCUMENT ID#:    FYI.A.4121
  1800.            DATE:    12AUG92
  1801.         PRODUCT:    LU6.2 Tools for DOS
  1802. PRODUCT VERSION:    Feb Release
  1803.      SUPERSEDES:    NA
  1804.  
  1805.        SYMPTOM:    NA
  1806.  
  1807. ISSUE/PROBLEM    
  1808.  
  1809.     The February release of NetWare for SAA LU6.2 toolkit is missing the DOS examples.
  1810.  
  1811. SOLUTION    
  1812.  
  1813.     They have been included in the NetWare LU6.2 Tools Release 1.4.02.
  1814.  
  1815.  
  1816.  
  1817.  
  1818. FYI:    Problem with Set Spool Flags
  1819.                                      FYI
  1820.  
  1821. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1822.  
  1823.           TITLE:    Problem with Set Spool Flags
  1824.    DOCUMENT ID#:    FYI.A.4120
  1825.            DATE:    12AUG92
  1826.         PRODUCT:    NetWare System Calls
  1827. PRODUCT VERSION:    v1.0
  1828.      SUPERSEDES:    NA
  1829.  
  1830.        SYMPTOM:    NA
  1831.  
  1832. ISSUE/PROBLEM    
  1833.  
  1834.     The Set Spool Flags call E0h(02h) that is used to set the form number, does not get set while sending a job to a print queue.  This can be verified through PCONSOLE.  The form number remains 0.  This occurs with the shell v3.26 but works fine with the shell v3.22.
  1835.  
  1836. SOLUTION    
  1837.  
  1838.     There is no current workaround except to use the older shell.
  1839.  
  1840.  
  1841.  
  1842.  
  1843. FYI:    Debug APIs
  1844.                                      FYI
  1845.  
  1846. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1847.  
  1848.           TITLE:    Debug APIs
  1849.    DOCUMENT ID#:    FYI.A.4119
  1850.            DATE:    12AUG92
  1851.         PRODUCT:    Network C for NLMs
  1852. PRODUCT VERSION:    SDKd
  1853.      SUPERSEDES:    NA
  1854.  
  1855.        SYMPTOM:    NA
  1856.  
  1857. ISSUE/PROBLEM    
  1858.  
  1859.     The Debug APIs may be used in an application NLM to debug that NLM.  They may also be used to write a full-fledged debugger.  If an NLM allocates memory that is being corrupted by some other program in the system, a write breakpoint can be set on the memory address at the time the memory is allocated.  This would then save the effort of manually stepping through the internal debugger.  The standard NetWare 386 Debug APIs are:
  1860.  
  1861.      - int RegisterDebugger( T_DebuggerStruct *debuggerStruct, int position );
  1862.      - int UnRegisterDebugger( T_DebuggerStruct *debuggerStruct );
  1863.      - int ReserveABreakPoint( void );
  1864.      - int CSetABreakPoint( int breakpointNumber,
  1865.                             LONG breakLinearAddress,
  1866.                             BYTE type, BYTE size );
  1867.      - int UnReserveABreakPoint( int breakpointNumber );
  1868.      - LONG LoadModule( struct ScreenStruct *screenID,
  1869.                         BYTE *commandLine, LONG loadOptions );
  1870.  
  1871. SOLUTION    
  1872.  
  1873.     NA
  1874.  
  1875.  
  1876.  
  1877.  
  1878. FYI:    Btrieve Parameters in NetWare for SAA
  1879.                                      FYI
  1880.  
  1881. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1882.  
  1883.           TITLE:    Btrieve Parameters in NetWare for SAA
  1884.    DOCUMENT ID#:    FYI.A.2845
  1885.            DATE:    12AUG92
  1886.         PRODUCT:    3270 Tools for DOS
  1887. PRODUCT VERSION:    1.2
  1888.      SUPERSEDES:    NA
  1889.  
  1890.        SYMPTOM:    Error - Load File Reference Undefined Symbol
  1891.  
  1892. ISSUE/PROBLEM    
  1893.  
  1894.     The DBA.NLM manages its communication services database using the Btrieve NLM.  Configuring the communication server with specific communication services, the configuration information (such as the names of the users authorized to use a particular service) is stored in the communication services database, which is a Btrieve file.  Although Btrieve is not part of the NetWare Communication Services, the Btrieve Record Manager NLM is used by the database agent NLM (DBA.NLM) to manage records within the database.
  1895.  
  1896. SOLUTION    
  1897.  
  1898.     Before the COMMEXEC.NLM is loaded which autoloads DBA.NLM and looks for Btrieve, the Btrieve NLM must be loaded with the following parameters:
  1899.  
  1900.          Load Btrieve -u=1 -p=4096 -f=20 -h=60 -l=20 -c
  1901.  
  1902.          -c for index compaction
  1903.          -f for number of open files
  1904.          -h for number of file handles
  1905.          -l for number of file locks
  1906.          -p for page size
  1907.          -u for allocation of data compression buffers
  1908.  
  1909.     These parameters are the minimum required for NetWare for SAA.  These might be needed to increase the values accordingly for additional NetWare Communication Services.
  1910.  
  1911.     If Btrieve is not loaded with these parameters, the following error will occur:
  1912.  
  1913.         Error - Load File Reference Undefined Symbol. Module DBA.NLM not loaded.
  1914.  
  1915.           LC:    Unable to load Communication Executive module:
  1916.            
  1917.             Agent Type 118h error code 15h.
  1918.  
  1919.  
  1920.  
  1921.  
  1922. FYI:    NetWare 3270 WSMULTI
  1923.                                      FYI
  1924.  
  1925. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1926.  
  1927.           TITLE:    NetWare 3270 WSMULTI
  1928.    DOCUMENT ID#:    FYI.A.2839
  1929.            DATE:    12AUG92
  1930.         PRODUCT:    3270 Tools for DOS
  1931. PRODUCT VERSION:    1.0
  1932.      SUPERSEDES:    NA
  1933.  
  1934.        SYMPTOM:    Cannot send hot key through sendkey() in WSMULTI.
  1935.  
  1936. ISSUE/PROBLEM    
  1937.  
  1938.     In a WSMULTI environment a hot-key to the presentation space cannot be sent through the Sendkey() HLLAPI API.
  1939.  
  1940. SOLUTION    
  1941.  
  1942.     The SetSessionParameters() function needs to be called by setting the CONPHYS option in order to jump to the host session and jump physically back to the DOS session.
  1943.  
  1944.  
  1945.  
  1946.  
  1947. FYI:    SPX APIs and the ES Register
  1948.                                      FYI
  1949.  
  1950. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1951.  
  1952.           TITLE:    SPX APIs and the ES Register
  1953.    DOCUMENT ID#:    FYI.A.2672
  1954.            DATE:    12AUG92
  1955.         PRODUCT:    NetWare C Interface DOS
  1956. PRODUCT VERSION:    1.2
  1957.      SUPERSEDES:    NA
  1958.  
  1959.        SYMPTOM:    SPX APIs may trash memory
  1960.  
  1961. ISSUE/PROBLEM    
  1962.  
  1963.     A problem observed using the Microsoft C compiler version 5.1 and up seems to cause some problems for SPX APIs in the SMALL and MEDIUM memory model due to assumptions about the ES register.
  1964.  
  1965.     The C Interface for DOS SPX APIs makes an assumption that the ES register will be the same as the DS register.  The following scenario forces this condition to be false and thus possibly causes memory overwrites and system crashes.  As an example:
  1966.  
  1967.      SPXEstablishConnection(..) is used
  1968.  
  1969.      int _far *dummy = NULL;      /* set pointer to NULL (0:0) */ int ivar;
  1970.      :
  1971.      :
  1972.      ivar = *dummy;               /* forces ES:SI to the pointer value */
  1973.      SPX<function name>           /* call any SPX function using ECBs */
  1974.  
  1975.     The SPX function saves and restores the ES register but is also used just prior from returning from the call; ES is assumed to point to DS (after is was restored).  But the assignment of "*dummy" to "ivar" forces ES:SI to be the "dummy" pointer.  This will essentially be writing into 0000:0000 (with the above example).
  1976.  
  1977.     This may cause very strange problems (or behavior of applications) when FAR addressing capabilities are used just prior to calling SPX functions.
  1978.  
  1979. SOLUTION    
  1980.  
  1981.     Just prior to calling SPX functions, set ES = DS in the SMALL and MEDIUM model or modify the C Interface for DOS source to "pop es" following its manipulation.
  1982.  
  1983.  
  1984.  
  1985.  
  1986. FYI:    Restoring Btrieve Files from Tape
  1987.                                      FYI
  1988.  
  1989. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  1990.  
  1991.           TITLE:    Restoring Btrieve Files from Tape
  1992.    DOCUMENT ID#:    FYI.A.1943
  1993.            DATE:    12AUG92
  1994.         PRODUCT:    Btrieve for DOS
  1995. PRODUCT VERSION:    5.10
  1996.      SUPERSEDES:    NA
  1997.  
  1998.        SYMPTOM:    NA
  1999.  
  2000. ISSUE/PROBLEM    
  2001.  
  2002.     Restoring Btrieve data from a tape may return the following error:
  2003.  
  2004.         "Access Denied - No Data"
  2005.  
  2006.     This error was only being returned on Btrieve's pre-image files.
  2007.  
  2008. SOLUTION    
  2009.  
  2010.     Some tape backup software packages do a directory listing of all files before doing the backup.  Then, they proceed to backup all the files in the directory listing.  However, if any of the files are in use, they do not get backed up.  Consequently, when restoring, the backup software checks the directory listing and tries to restore all files; but if the file does not exist on the tape, then this error is returned.
  2011.  
  2012.  
  2013.  
  2014.  
  2015. FYI:    Using ODI Drivers with Xtrieve 4.01a
  2016.                                      FYI
  2017.  
  2018. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2019.  
  2020.           TITLE:    Using ODI Drivers with Xtrieve 4.01a
  2021.    DOCUMENT ID#:    FYI.A.1941
  2022.            DATE:    12AUG92
  2023.         PRODUCT:    Xtrieve PLUS
  2024. PRODUCT VERSION:    4.01a
  2025.      SUPERSEDES:    NA
  2026.  
  2027.        SYMPTOM:    Workstation hangs.
  2028.  
  2029. ISSUE/PROBLEM    
  2030.  
  2031.     Xtrieve 4.01a hangs when loading, if used with the ODI (workstation) drivers.
  2032.  
  2033. SOLUTION    
  2034.  
  2035.     Use the /e parameter on the Xtrieve and XQLP command lines.
  2036.  
  2037.     If XQLP (2.01) is not explicitly loaded, and /e is used on the command line for Xtrieve, the workstation will still hang.  Apparently the /e does not get transferred to the XQLP command line.  If XQLP is explicitly loaded with the /e parameter and Xtrieve is also loaded with the /e parameter, then everything works as expected, and the workstation does not hang.
  2038.  
  2039.  
  2040.  
  2041.  
  2042. FYI:    Defaults for the NetWare NetBIOS Option
  2043.                                      FYI
  2044.  
  2045. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2046.  
  2047.           TITLE:    Defaults for the NetWare NetBIOS Option
  2048.    DOCUMENT ID#:    FYI.A.2841
  2049.            DATE:    11AUG92
  2050.         PRODUCT:    NetWare OS/2 SDK
  2051. PRODUCT VERSION:    2.0
  2052.      SUPERSEDES:    NA
  2053.  
  2054.        SYMPTOM:    NA
  2055.  
  2056. ISSUE/PROBLEM    
  2057.  
  2058.     Some defaults for the NetWare NetBIOS option in the NET.CFG file are incorrectly documented in the NetWare Requester manual.
  2059.  
  2060. SOLUTION    
  2061.  
  2062.     The correct defaults are:
  2063.  
  2064.      COMMANDS    Default=128 commands
  2065.      NAMES       Default=32 names
  2066.      SESSIONS    Default=64 sessions, maximum allowed=64 sessions
  2067.  
  2068.  
  2069.  
  2070.  
  2071. FYI:    Configuration Parameters under OS/2 v2.0
  2072.                                      FYI
  2073.  
  2074. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2075.  
  2076.           TITLE:    Configuration Parameters under OS/2 v2.0
  2077.    DOCUMENT ID#:    FYI.A.2840
  2078.            DATE:    11AUG92
  2079.         PRODUCT:    NetWare OS/2 SDK
  2080. PRODUCT VERSION:    2.0
  2081.      SUPERSEDES:    NA
  2082.  
  2083.        SYMPTOM:    NA
  2084.  
  2085. ISSUE/PROBLEM    
  2086.  
  2087.     When using Token-Ring network boards that support frame sizes up to 4 KB,  type the following lines in the NET.CFG file:
  2088.  
  2089.      Link Support
  2090.         buffers 14 4210
  2091.  
  2092. SOLUTION    
  2093.  
  2094.     The NetWare Requester manual incorrectly says to use "15" instead of "14."
  2095.  
  2096.  
  2097.  
  2098.  
  2099. FYI:    TRUSTEE NLM Abends if Event Fails to Register
  2100.                                      FYI
  2101.  
  2102. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2103.  
  2104.           TITLE:    TRUSTEE NLM Abends if Event Fails to Register
  2105.    DOCUMENT ID#:    FYI.A.3161
  2106.            DATE:    10AUG92
  2107.         PRODUCT:    Network C for NLMs
  2108. PRODUCT VERSION:    SDKd
  2109.      SUPERSEDES:    NA
  2110.  
  2111.        SYMPTOM:    NA
  2112.  
  2113. ISSUE/PROBLEM    
  2114.  
  2115.     The NLM called TRUSTEE.NLM, in /NOVX/EVENTS/TRUSTEE has a problem where it will not close its local semaphore if an error occurs during event registration.
  2116.  
  2117. SOLUTION    
  2118.  
  2119.     Use an atexit() routine to register the unload code instead of the AtUnload API, and replace the open semaphore code with the following:
  2120.  
  2121.      Replace line 119 which currently says:
  2122.            semaphoreHandle = OpenLocalSemaphore( 0 );
  2123.  
  2124.      With these four lines:
  2125.            if( (semaphoreHandle = OpenLocalSemaphore( 0 )) == -1 )
  2126.            {
  2127.                printf("Error opening a local semaphore!\n");
  2128.                return 1;
  2129.            }
  2130.  
  2131.  
  2132.  
  2133.  
  2134. FYI:    Opening a File Called "log"
  2135.                                      FYI
  2136.  
  2137. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2138.  
  2139.           TITLE:    Opening a File Called "log"
  2140.    DOCUMENT ID#:    FYI.A.3160
  2141.            DATE:    10AUG92
  2142.         PRODUCT:    Network C for NLMs
  2143. PRODUCT VERSION:    SDKd
  2144.      SUPERSEDES:    NA
  2145.  
  2146.        SYMPTOM:    NLM hangs.
  2147.  
  2148. ISSUE/PROBLEM    
  2149.  
  2150.     When opening a file named "log", CLib will return a handle, but when read() is called with that handle, it blocks and never comes back.
  2151.  
  2152. SOLUTION    
  2153.  
  2154.     Turns out, STREAMS is returning a file handle when it is passed this filename.  CLib calls the STREAMS open API first, and when STREAMS returns a handle, CLib just links that handle into the open file list and returns it to the application.
  2155.  
  2156.     Two workarounds for the problem are listed below:
  2157.  
  2158.     1.    Do not pass in lower case names to CLib, For example: strupr() first!
  2159.  
  2160.     2.    Pass full volume path specifications instead, For example: SYS:LOG
  2161.  
  2162.     Finally, other situations exist where this "feature" is occurring.  
  2163.  
  2164.     For example:
  2165.  
  2166.         If "log" is passed in with one or more digits after it ("log123") the same thing will happen.
  2167.  
  2168.  
  2169.  
  2170.  
  2171. FYI:    Problem with NLM Event Examples
  2172.                                      FYI
  2173.  
  2174. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2175.  
  2176.           TITLE:    Problem with NLM Event Examples
  2177.    DOCUMENT ID#:    FYI.A.3159
  2178.            DATE:    10AUG92
  2179.         PRODUCT:    Network C for NLMs
  2180. PRODUCT VERSION:    SDKd
  2181.      SUPERSEDES:    NA
  2182.  
  2183.        SYMPTOM:    NA
  2184.  
  2185. ISSUE/PROBLEM    
  2186.  
  2187.     The examples in the /NOVX/EVENTS directory on intercepting OS events are checking for a return code of 0 from the RegisterForEvent API if an error occurs.
  2188.  
  2189. SOLUTION    
  2190.  
  2191.     Fix the problem by checking for -1 returned from RegisterForEvent if the registration fails.
  2192.  
  2193.  
  2194.  
  2195.  
  2196. FYI:    GetBridgeDriverConfiguration() in C Interface
  2197.                                      FYI
  2198.  
  2199. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2200.  
  2201.           TITLE:    GetBridgeDriverConfiguration() in C Interface
  2202.    DOCUMENT ID#:    FYI.A.2842
  2203.            DATE:    10AUG92
  2204.         PRODUCT:    NetWare C Interface DOS
  2205. PRODUCT VERSION:    1.2
  2206.      SUPERSEDES:    NA
  2207.  
  2208.        SYMPTOM:    EthernetFlagBits incorrect in GetBridgeDriverConfiguration
  2209.  
  2210. ISSUE/PROBLEM    
  2211.  
  2212.     GetBridgeDriverConfiguration() always returns 1 for the 802.2 frame type for NE2000 cards and 0xFF for Western Digital cards.  If 802.3, Ethernet_II or any other frame format is used it returns garbage.
  2213.  
  2214. SOLUTION    
  2215.  
  2216.     No solution is available at this time.
  2217.  
  2218.  
  2219.  
  2220.  
  2221. FYI:    Embedded SQL, WATCOM and Math Coprocessors
  2222.                                      FYI
  2223.  
  2224. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2225.  
  2226.           TITLE:    Embedded SQL, WATCOM and Math Coprocessors
  2227.    DOCUMENT ID#:    FYI.A.2427
  2228.            DATE:    10AUG92
  2229.         PRODUCT:    NetWare SQL
  2230. PRODUCT VERSION:    3.0
  2231.      SUPERSEDES:    NA
  2232.  
  2233.        SYMPTOM:    Embedded SQL application hangs
  2234.  
  2235. ISSUE/PROBLEM    
  2236.  
  2237.     When using the WATCOM compiler v8.5 to compile NetWare SQL v3.0 embedded SQL source code, the /FPI switch is used by default.  The /FPI switch is for use with a math coprocessor, which is appropriate if the workstation has a math coprocessor.  However, if the workstation does not have a math coprocessor, then the embedded SQL application may hang at runtime.
  2238.  
  2239. SOLUTION    
  2240.  
  2241.     If the workstation does not have a math coprocessor, then use the /FPC switch to compile the embedded SQL source code, instead of the /FPI switch.
  2242.  
  2243.  
  2244.  
  2245.  
  2246. FYI:    Stored Statements and Status 204
  2247.                                      FYI
  2248.  
  2249. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2250.  
  2251.           TITLE:    Stored Statements and Status 204
  2252.    DOCUMENT ID#:    FYI.A.1865
  2253.            DATE:    10AUG92
  2254.         PRODUCT:    NetWare SQL
  2255. PRODUCT VERSION:    3.0
  2256.      SUPERSEDES:    NA
  2257.  
  2258.        SYMPTOM:    NA
  2259.  
  2260. ISSUE/PROBLEM    
  2261.  
  2262.     If the file id for a file is changed, then all stored statements that pertained to that file will become invalid.  A file id will change if the definition of the file has been dropped and readded to the dictionary.  A status 204, Table is not defined in the dictionary, is returned when trying to recall a stored statement that has an invalid file id.
  2263.  
  2264. SOLUTION    
  2265.  
  2266.     NA
  2267.  
  2268.  
  2269.  
  2270.  
  2271. FYI:    Compiling Microsoft BASIC 7.x Btrieve Applications under OS/2
  2272.                                      FYI
  2273.  
  2274. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2275.  
  2276.           TITLE:    Compiling Microsoft BASIC 7.x Btrieve Applications under OS/2
  2277.    DOCUMENT ID#:    FYI.A.2115
  2278.            DATE:    05AUG92
  2279.         PRODUCT:    Btrieve for OS/2
  2280. PRODUCT VERSION:    ALL
  2281.      SUPERSEDES:    NA
  2282.  
  2283.        SYMPTOM:    NA
  2284.  
  2285. ISSUE/PROBLEM    
  2286.  
  2287.     The Btrieve for OS/2 Developer Kit ships a protected mode interface called BC7PBTRV.OBJ.  How is this interface used when compiling and linking a Btrieve application to run under the OS/2 environment?
  2288.  
  2289. SOLUTION    
  2290.  
  2291.     Compiling a Btrieve application written in BASIC to run under OS/2 is very much the same as compiling to run under DOS, the only difference being the BC command line switches and the libraries which need to be included at link time.  This additional command line switch is called /Lp.  This switch instructs the compiler to create a protected-mode object file (.OBJ).  Once this protected mode .OBJ is created, it can be included with the interface (BC7PBTRV.OBJ) at link time.
  2292.  
  2293.     MS BASIC 7.X allows the user two ways of compiling.  The first one being a complete command line syntax and the later one consisting of a series of prompts.  The command line syntax for compile and link is:
  2294.  
  2295.         BC <SOURCEFILE>, <OBJECTFILE>, <LISTINGFILE>, <OPTIONS>;
  2296.  
  2297.     To compile a Btrieve application called SAMPLE.BAS for OS/2 the syntax would look like:
  2298.  
  2299.         BC SAMPLE.BAS /O /LP
  2300.  
  2301.     Without the /O compiler option specified, the linker will look for a special run-time library during link time.  Since the OBJECTFILE and LISTINGFILE were not included, the compiler will, by default, create these .OBJ and .LST files with the same name as the SOURCEFILE.  In the above case, SAMPLE.OBJ and SAMPLE.LST will be created.
  2302.  
  2303.     The LINK command is used to create an executable file as follows:
  2304.  
  2305.      LINK <OPTIONS> <OBJFILES>, <EXEFILE>, <MAPFILE>, <LIBRARIES>, <DEFFILE>;
  2306.  
  2307.     Therefore, to link the SAMPLE.OBJ to its appropriate object files and libraries, the command line would look like:
  2308.  
  2309.       LINK SAMPLE.OBJ+BC7PBTRV.OBJ, , , OS2.LIB+BCL71ENP.LIB+BTRCALL.LIB;
  2310.  
  2311.     Since EXEFILE, MAPFILE and DEFFILE were not used, by default, SAMPLE.EXE,  SAMPLE.MAP files will be created.
  2312.  
  2313.  
  2314.  
  2315.  
  2316. FYI:    Erroneous Results when Passing DataBuf and DataBufLen by Value
  2317.                                      FYI
  2318.  
  2319. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2320.  
  2321.           TITLE:    Erroneous Results when Passing DataBuf and DataBufLen by Value
  2322.    DOCUMENT ID#:    FYI.A.1945
  2323.            DATE:    05AUG92
  2324.         PRODUCT:    Btrieve for DOS
  2325. PRODUCT VERSION:    5.10a
  2326.      SUPERSEDES:    NA
  2327.  
  2328.        SYMPTOM:    Status 6; Status 34
  2329.  
  2330. ISSUE/PROBLEM    
  2331.  
  2332.     Certain Btrieve operations are documented to not require the use of the Data Buffer (DB) and Data Buffer Length (DBL) parameters.  Accordingly, it should not be a problem if these parameters are passed by value, with their contents being whatever was returned from the previous Btrieve operation.  But, in some cases this causes problems, as documented below.
  2333.  
  2334. SOLUTION    
  2335.  
  2336.     For the Btrieve Drop Supplemental Index operation, if DB and DBL are passed by value, Btrieve returns a status 6 (Invalid Key Number) even though a valid key number is provided.
  2337.  
  2338.     On the Btrieve Extend operation, if DB and DBL are passed by value, Btrieve returns a status 34 (Invalid Extension Name) even though a valid extension name is provided.
  2339.  
  2340.     Both of these situations are remedied, and correct results are seen, by passing to Btrieve the address of DB and DBL, even though the Btrieve Programmer manual reflects that these operations do not require the use of these two parameters.
  2341.  
  2342.  
  2343.  
  2344.  
  2345. FYI:    Extending Btrieve Files
  2346.                                      FYI
  2347.  
  2348. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2349.  
  2350.           TITLE:    Extending Btrieve Files
  2351.    DOCUMENT ID#:    FYI.A.1944
  2352.            DATE:    05AUG92
  2353.         PRODUCT:    Btrieve for DOS
  2354. PRODUCT VERSION:    5.10a
  2355.      SUPERSEDES:    NA
  2356.  
  2357.        SYMPTOM:    NA
  2358.  
  2359. ISSUE/PROBLEM    
  2360.  
  2361.     Below are the results of a few scenarios that were tested regarding extending Btrieve files:
  2362.  
  2363.     1.    If C:\CDS.BTR is specified as the extension filename and there already exists a file by that name, the Btrieve Extend operation returns status 32 (Extend I/O Error).  This happens even if C:\CDS.BTR is an ASCII file.
  2364.  
  2365.     2.    If a BUTIL -STAT is attempted on an extension file, Btrieve returns a status 2 (I/O Error).
  2366.  
  2367.     3.    If an extension file is deleted, and the original Btrieve file is attempted to be opened, Btrieve returns status 13 (Extended File Error).  This is as expected.
  2368.  
  2369.         But, if an extension file is replaced with the original Btrieve file, and an attempt is made to open the original Btrieve file, the Open operation is successful.  A subsequent Get First operation returns status 2; but an Insert operation returns status 0 and the record does get inserted.
  2370.  
  2371. SOLUTION    
  2372.  
  2373.     NA
  2374.  
  2375.  
  2376.  
  2377.  
  2378. FYI:    Btrieve Status 30 and /E
  2379.                                      FYI
  2380.  
  2381. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2382.  
  2383.           TITLE:    Btrieve Status 30 and /E
  2384.    DOCUMENT ID#:    FYI.A.1942
  2385.            DATE:    05AUG92
  2386.         PRODUCT:    Btrieve for DOS
  2387. PRODUCT VERSION:    5.00c
  2388.      SUPERSEDES:    N/A
  2389.  
  2390.        SYMPTOM:    Status 30 accessing Btrieve file.
  2391.  
  2392. ISSUE/PROBLEM    
  2393.  
  2394.     The following scenario was encountered:
  2395.  
  2396.     Using Btrieve for DOS version 5.00c, an application accessed a floppy drive without error, however, when the file was moved to the hard drive a status 30 (Not a Btrieve File) would be returned when trying to access the file.  When the file was copied back to the floppy, the status 30 would not occur.
  2397.  
  2398. SOLUTION    
  2399.  
  2400.     It could have been a bad spot on the hard disk, but that was not established to be true.  However, when the /e parameter was added to the command line when loading Btrieve, the status 30 mysteriously disappeared (even when using the hard disk).  So, it could have possibly been a conflict with expanded memory.
  2401.  
  2402.     It has recently been found that Btrieve for DOS v5.10a (and possibly  earlier versions also) can be loaded with a /p parameter of 4096 without an appropriate /m parameter (such as /p:4096 /m:18), if the /e parameter is not used and expanded memory is present.  If the /e parameter is used,  Btrieve returns the message "Insufficient memory for parameters specified" indicating that there is not enough memory to load Btrieve with the  requested value for the /p and /m parameter, as it should.
  2403.  
  2404.     The bottom line is, the rules for using an appropriate /m parameter for the specified /p parameter may not be checked in an environment with expanded memory, but they should still be followed.  Try the /e parameter when working with Btrieve for DOS.
  2405.  
  2406.  
  2407. FYI:    3270 LAN Workstation v2.0
  2408.                                      FYI
  2409.  
  2410. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2411.  
  2412.           TITLE:    3270 LAN Workstation v2.0
  2413.    DOCUMENT ID#:    FYI.A.2843
  2414.            DATE:    04AUG92
  2415.         PRODUCT:    3270 Tools for DOS
  2416. PRODUCT VERSION:    2.0
  2417.      SUPERSEDES:    NetWare 3270 Lan Workstation v2.0
  2418.  
  2419.        SYMPTOM:    Receive_Data_Exit parameter is inconsistent.
  2420.  
  2421. ISSUE/PROBLEM    
  2422.  
  2423.     The Attach_lu verb in the NetWare APPC Technical Reference indicates that the Receive_Data_Exit parameter specifies the address of the application subsystem code that will notify the receipt of data or status for a specified conversation.  If the application does not wish to be notified of received data or status, this parameter should be set to all ones instead of zeroes.  However, the setting of these parameters has no effect on the Attach_lu call.
  2424.  
  2425. SOLUTION    
  2426.  
  2427.     The old LU6.2 protocol boundary on the workstation does not recognize this.  Receive_data_exit functionality is not implemented under Netware 3270 LAN Workstation v2.0 but it is under v2.01.
  2428.  
  2429.  
  2430.  
  2431.  
  2432. FYI:    Writing Applications in Different Memory Models
  2433.                                      FYI
  2434.  
  2435. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2436.  
  2437.           TITLE:    Writing Applications in Different Memory Models
  2438.    DOCUMENT ID#:    FYI.A.1939
  2439.            DATE:    04AUG92
  2440.         PRODUCT:    Btrieve for DOS
  2441. PRODUCT VERSION:    5.10a
  2442.      SUPERSEDES:    NA
  2443.  
  2444.        SYMPTOM:    Btrieve application hangs when making Btrieve call.
  2445.  
  2446. ISSUE/PROBLEM    
  2447.  
  2448.     Originally, an application together with the interface had been compiled in the small memory model, using a Borland C project file.  Subsequently, the application was modified and a project file was used to compile the application in the large memory model.
  2449.  
  2450.     Since the source code of the Btrieve interface had not changed since it was last compiled, the interface was not recompiled in the large memory model.  The resulting EXE had one OBJ (main application source code) compiled in the large memory model and another OBJ (Btrieve interface) compiled in the small memory model. This resulted in the application hanging when it was executed.
  2451.  
  2452. SOLUTION    
  2453.  
  2454.     Make sure that each component of an application is compiled in the same memory model as the others.
  2455.  
  2456.  
  2457.  
  2458.  
  2459. FYI:    GetSemaphoreInformation on a 3.x Server
  2460.                                      FYI
  2461.  
  2462. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2463.  
  2464.           TITLE:    GetSemaphoreInformation on a 3.x Server
  2465.    DOCUMENT ID#:    FYI.A.3382
  2466.            DATE:    03AUG92
  2467.         PRODUCT:    NetWare System Calls
  2468. PRODUCT VERSION:    1.00
  2469.      SUPERSEDES:    NA
  2470.  
  2471.        SYMPTOM:    NA
  2472.  
  2473. ISSUE/PROBLEM    
  2474.  
  2475.     The GetSemaphoreInformation call is not returning any information in the ReplyBuffer when issued as documented.
  2476.  
  2477. SOLUTION    
  2478.  
  2479.     The request and reply buffer should be documented as below:
  2480.  
  2481.      Request Buffer
  2482.      --------------
  2483.  
  2484.      Offset        Request Packet Contents       Bytes
  2485.      ------        -----------------------       -----
  2486.        0          Length of Request Packet         2
  2487.        2          Sub-function Code                1
  2488.        3          Last Record Seen                 2
  2489.        5          Semaphore Name Length            1
  2490.        6          Semaphore Name                 SemaphoreNameLength
  2491.  
  2492.      Reply Buffer
  2493.      --------------
  2494.  
  2495.      Offset       Reply Packet Contents         Bytes
  2496.      ------       ------------------------      -----
  2497.        0          Next Request Record             2
  2498.        2          Semaphore Open Count            2
  2499.        4          Semaphore Value                 2
  2500.        6          Semaphore Count                 1
  2501.     
  2502.          The following repeats Semaphore Count times (max 150)
  2503.  
  2504.       7           Logical Connection Number       2     Hi - Low
  2505.       9           Task Number                     2     Hi - Low
  2506.       ~
  2507.       ~
  2508.  
  2509.  
  2510.  
  2511.  
  2512. FYI:    The Default Screen of an NLM
  2513.                                      FYI
  2514.  
  2515. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2516.  
  2517.           TITLE:    The Default Screen of an NLM
  2518.    DOCUMENT ID#:    FYI.A.3378
  2519.            DATE:    03AUG92
  2520.         PRODUCT:    Network C for NLMs
  2521. PRODUCT VERSION:    20d
  2522.      SUPERSEDES:    NA
  2523.  
  2524.        SYMPTOM:    NA
  2525.  
  2526. ISSUE/PROBLEM    
  2527.  
  2528.     How can you define an NLM to not have a default screen?
  2529.  
  2530. SOLUTION    
  2531.  
  2532.     Use the linker directive as below:
  2533.  
  2534.       OPTION SCREENNAME NONE
  2535.  
  2536.  
  2537.  
  2538.  
  2539. FYI:    Btrieve File Corruption on NetWare v3.11
  2540.                                      FYI
  2541.  
  2542. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2543.  
  2544.           TITLE:    Btrieve File Corruption on NetWare v3.11
  2545.    DOCUMENT ID#:    FYI.A.2038
  2546.            DATE:    03AUG92
  2547.         PRODUCT:    NetWare Btrieve NLM
  2548. PRODUCT VERSION:    6.0
  2549.      SUPERSEDES:    FYI.A.2019
  2550.  
  2551.        SYMPTOM:    Data Files Corrupted
  2552.  
  2553. ISSUE/PROBLEM    
  2554.  
  2555.     There is a problem with NetWare version 3.11 that causes Btrieve files to become corrupt.  If the page size of a Btrieve data file is not evenly divisible into 4096 (is NOT 512, 1024, 2048 or 4096), the file may be corrupted.
  2556.  
  2557. SOLUTION    
  2558.  
  2559.     The NetWare 3.11 patch ASNCRDFX.NLM (Async Read Fix) fixes this problem. This patch is available on NetWire in the file 311PT7.ZIP.
  2560.  
  2561.  
  2562.  
  2563.  
  2564. FYI:    Btrieve 6.0 Open with Owner Name
  2565.                                      FYI
  2566.  
  2567. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2568.  
  2569.           TITLE:    Btrieve 6.0 Open with Owner Name
  2570.    DOCUMENT ID#:    FYI.A.2037
  2571.            DATE:    03AUG92
  2572.         PRODUCT:    NetWare Btrieve NLM
  2573. PRODUCT VERSION:    6.0
  2574.      SUPERSEDES:    NA
  2575.  
  2576.        SYMPTOM:    Status 51 on Btrieve open operation
  2577.  
  2578. ISSUE/PROBLEM    
  2579.  
  2580.     With Btrieve version 6.0, if the data buffer length on an open of a data file with an owner name is not at least as long as the owner name in the data buffer INCLUDING the null terminator, a status 51 will be returned. 
  2581.  
  2582.     Although it has always been documented in the programmer's manual to pass the data buffer length as the length of the owner name including the null, Btrieve 5.x did not check the data buffer length on the open and a status 51 would not be returned because of a short data buffer length.
  2583.  
  2584. SOLUTION    
  2585.  
  2586.     On open operations, specify the data buffer length as the length of the owner name including the null terminator.
  2587.  
  2588.  
  2589.  
  2590.  
  2591. FYI:    Btrieve 6.0 Reset
  2592.                                      FYI
  2593.  
  2594. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2595.  
  2596.           TITLE:    Btrieve 6.0 Reset
  2597.    DOCUMENT ID#:    FYI.A.2036
  2598.            DATE:    03AUG92
  2599.         PRODUCT:    NetWare Btrieve NLM
  2600. PRODUCT VERSION:    6.0
  2601.      SUPERSEDES:    NA
  2602.  
  2603.        SYMPTOM:    File is left open after Reset from a different workstation.
  2604.  
  2605. ISSUE/PROBLEM    
  2606.  
  2607.     If a Btrieve file is opened from a workstation running Brequest 6.0, this connection cannot be reset from a workstation running 5.16 Brequest.  If a file is opened from a workstation running Brequest 5.16, its connection can be reset from a workstation running Brequest 5.16 or 6.0.
  2608.  
  2609.     With the BTRIEVE.NLM version 6.0, a SUCCESSFUL (status = 0) Btrieve operation that accesses the NLM must be performed from a workstation before this workstation can remotely reset another station.  This is different from the 5.15 NLM in which the reset was not dependent upon the success (status !=0) of the call.
  2610.  
  2611. SOLUTION    
  2612.  
  2613.     If a Btrieve file is opened with Brequest 6.0 and needs to be reset remotely, run Brequest 6.0 on the remote workstation.  Before the reset operation, make a successful call to the Btrieve NLM to establish a connection.
  2614.  
  2615.  
  2616.  
  2617.  
  2618. FYI:    Xtrieve Unable to Recall View
  2619.                                      FYI
  2620.  
  2621. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2622.  
  2623.           TITLE:    Xtrieve Unable to Recall View
  2624.    DOCUMENT ID#:    FYI.A.2035
  2625.            DATE:    03AUG92
  2626.         PRODUCT:    Xtrieve Plus
  2627. PRODUCT VERSION:    4.11
  2628.      SUPERSEDES:    NA
  2629.  
  2630.        SYMPTOM:    "No Views in Dictionary" returned with Xtrieve.
  2631.  
  2632. ISSUE/PROBLEM    
  2633.  
  2634.     If NSREQ is loaded with too low of /d: parameter, Xtrieve will return an error "No Views in Dictionary" instead of a 2101 (data message buffer too small) when an attempt is made to recall a view.
  2635.  
  2636. SOLUTION    
  2637.  
  2638.     Load NSREQ with a larger /d: parameter.
  2639.  
  2640.  
  2641.  
  2642.  
  2643. FYI:    Rolling Forward with Btrieve
  2644.                                      FYI
  2645.  
  2646. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2647.  
  2648.           TITLE:    Rolling Forward with Btrieve
  2649.    DOCUMENT ID#:    FYI.A.2034
  2650.            DATE:    03AUG92
  2651.         PRODUCT:    NetWare Btrieve NLM
  2652. PRODUCT VERSION:    6.0
  2653.      SUPERSEDES:    NA
  2654.  
  2655.        SYMPTOM:    NA
  2656.  
  2657. ISSUE/PROBLEM    
  2658.  
  2659.     The following is a behavior list for the roll forward process in relation to Btrieve 5.x and Btrieve 6.0.
  2660.  
  2661.      1.    Log files created with 5.x Btrieve can be applied to 5.x files with the 6.0 xBROLL utilities (DBROLL, PBROLL, WBROLL).
  2662.  
  2663.      2.    Log files created with 6.0 Btrieve are not compatible with the 5.x roll forward utilities (BROLLFWD and WBROLL 5.x) and cannot be used with the 5.x utilities.
  2664.  
  2665.      3.    If a single log file contains some entries that were created by 5.x Btrieve and some entries that were created by 6.0 Btrieve using the 6.0 xBROLL utilities, if the first entry is created by 5.x Btrieve, only the 5.x entries in the log file will be applied.  If the first entry in the log file is created by 6.0 Btrieve, the 6.0 xBROLL utilities will only apply the 6.0 entries.
  2666.  
  2667.      4.    If a log file is created with 5.x Btrieve, the changes in the log file can be applied to a Btrieve file with the xBROLL utilities multiple times.
  2668.  
  2669.         If a log file is created by 6.0 Btrieve, (even if the data file is a 5.x format file), once xBROLL is used to apply the changes to a Btrieve file, the entries in the log file are marked as "used" and cannot be applied again to a data file using xBROLL.
  2670.  
  2671. SOLUTION    
  2672.  
  2673.     NA
  2674.  
  2675.  
  2676.  
  2677.  
  2678. FYI:    Close File and Abort Queue Job is Referenced but Not Documented
  2679.                                      FYI
  2680.  
  2681. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2682.  
  2683.           TITLE:    Close File and Abort Queue Job is Referenced but Not Documented
  2684.    DOCUMENT ID#:    FYI.A.1324
  2685.            DATE:    03AUG92
  2686.         PRODUCT:    NetWare System Calls
  2687. PRODUCT VERSION:    1.00
  2688.      SUPERSEDES:    NA
  2689.  
  2690.        SYMPTOM:    NA
  2691.  
  2692. ISSUE/PROBLEM    
  2693.  
  2694.     Some system calls refer to a function Close File and Abort Queue Job; however, this function is not documented.
  2695.  
  2696. SOLUTION    
  2697.  
  2698.     The functions that should be used are close (fileHandle) and Remove Job From Queue (E3h 6Ah).
  2699.  
  2700.  
  2701.  
  2702.  
  2703. FYI:    Btrieve NLM v6.0 Ignores -N Load Parameter
  2704.                                      FYI
  2705.  
  2706. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2707.  
  2708.           TITLE:    Btrieve NLM v6.0 Ignores -N Load Parameter
  2709.    DOCUMENT ID#:    FYI.A.1046
  2710.            DATE:    03AUG92
  2711.         PRODUCT:    NetWare Btrieve NLM
  2712. PRODUCT VERSION:    6.0
  2713.      SUPERSEDES:    NA
  2714.  
  2715.        SYMPTOM:    NA
  2716.  
  2717. ISSUE/PROBLEM    
  2718.  
  2719.     The Btrieve NLM v6.0 now ignores the "-n" load parameter.  The actual number of files that can be accessed from within a transaction is now equal to the "-f" load parameter.  The "-f" load parameter specifies the Maximum Number of Open Files.
  2720.  
  2721.     The documentation in the Installation and Operation for NetWare SQL v3.0 manual is not accurate.  At the bottom of page 2-31, the Default value for the Number of Files Per Transaction parameter for NetWare Btrieve is incorrect.  It should be the same as the Maximum Number of Open Files parameter.
  2722.  
  2723. SOLUTION    
  2724.  
  2725.     NA
  2726.  
  2727.  
  2728.  
  2729.  
  2730. FYI:    Determining a DOS or NetWare Device
  2731.                                      FYI
  2732.  
  2733. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2734.  
  2735.           TITLE:    Determining a DOS or NetWare Device
  2736.    DOCUMENT ID#:    FYI.A.3381
  2737.            DATE:    31JUL92
  2738.         PRODUCT:    NetWare System Calls
  2739. PRODUCT VERSION:    1.00
  2740.      SUPERSEDES:    NA
  2741.  
  2742.        SYMPTOM:    NA
  2743.  
  2744. ISSUE/PROBLEM    
  2745.  
  2746.     How can an application tell whether a device is a local DOS device, or a redirected network device?
  2747.  
  2748. SOLUTION    
  2749.  
  2750.     Use the DOS call, interrupt line 21H function 44, subfunction 0D, to detect if you are on a redirected device.  This should work for all NetWare platforms, including NetWare Lite.
  2751.  
  2752.  
  2753.  
  2754.  
  2755. FYI:    Bad Reply from GetConnectionsOpenFiles
  2756.                                      FYI
  2757.  
  2758. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2759.  
  2760.           TITLE:    Bad Reply from GetConnectionsOpenFiles
  2761.    DOCUMENT ID#:    FYI.A.3379
  2762.            DATE:    31JUL92
  2763.         PRODUCT:    NetWare System Calls
  2764. PRODUCT VERSION:    1.00
  2765.      SUPERSEDES:    NA
  2766.  
  2767.        SYMPTOM:    Bad Reply Received From GetConnectionsOpenFiles
  2768.  
  2769. ISSUE/PROBLEM    
  2770.  
  2771.     The GetConnectionsOpenFiles System Call is not returning data as documented.
  2772.  
  2773. SOLUTION    
  2774.  
  2775.     The ReplyBuffer is documented incorrectly.  The ReplyBuffer should be defined as below:
  2776.  
  2777.      Offset               Reply Packet Contents       Bytes
  2778.      ------               ----------------------      -----
  2779.        0                 Next Request Record             2
  2780.        2                 Number Of Records               2
  2781.        ~
  2782.        ~   The following repeats Number of Record Times
  2783.        ~
  2784.        4                 Task Number                     2
  2785.        6                 Lock Type                       1
  2786.        7                 Access Control                  1
  2787.        8                 Lock Flag                       1
  2788.        9                 Volume Number                   1
  2789.       10                 Reserved                        9
  2790.       19                 Name Space                      1
  2791.       20                 FileNameLength                  1
  2792.       21                 FileName                     FileNameLength
  2793.        ~
  2794.        ~
  2795.  
  2796.  
  2797.  
  2798.  
  2799. FYI:    ATTACH.C Does Not Reorder Internet Addresses
  2800.                                      FYI
  2801.  
  2802. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2803.  
  2804.           TITLE:    ATTACH.C Does Not Reorder Internet Addresses
  2805.    DOCUMENT ID#:    FYI.A.3377
  2806.            DATE:    31JUL92
  2807.         PRODUCT:    NetWare C Interface DOS
  2808. PRODUCT VERSION:    1.2
  2809.      SUPERSEDES:    NA
  2810.  
  2811.        SYMPTOM:    Automatic EOJs are not generated when application terminates.
  2812.  
  2813. ISSUE/PROBLEM    
  2814.  
  2815.     Automatic End Of Job Requests are not occurring when the NetWare C Interface - DOS AttachToFileServer API has been used to create the attachment to the file server.  This becomes noticeable when applications terminate, but do not close their files.
  2816.  
  2817.     Normally, the shell will generate an EOJ and close the files for the work station.  However, due to this bug, the files remain open.  This happens because the shell generates EOJs based on the network addresses stored in the shell connection table.  These addresses need to be ordered, using the order number (also in the shell connection table) from lowest to highest network address.  The current version of ATTACH.C does not order the network addresses.
  2818.  
  2819. SOLUTION    
  2820.  
  2821.     A fixed version of ATTACH.C source code can be obtained from Novell Austin.
  2822.  
  2823.  
  2824.  
  2825.  
  2826. FYI:    Renaming Subdirectories and NetWare
  2827.                                      FYI
  2828.  
  2829. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2830.  
  2831.           TITLE:    Renaming Subdirectories and NetWare
  2832.    DOCUMENT ID#:    FYI.A.3376
  2833.            DATE:    31JUL92
  2834.         PRODUCT:    NetWare System Calls
  2835. PRODUCT VERSION:    1.00
  2836.      SUPERSEDES:    NA
  2837.  
  2838.        SYMPTOM:    Unable to rename subdirectory -- invalid path.
  2839.  
  2840. ISSUE/PROBLEM    
  2841.  
  2842.     DOS will allow a subdirectory to be renamed even when a full path is specified in the destination subdirectory name.  However, NetWare does not support this capability.
  2843.  
  2844.      Example:
  2845.  
  2846.      DOS Rename                                 NetWare Rename
  2847.  
  2848.      \SUBDIR1\OLDNAME \SUBDIR\NEWNAME           \SUBDIR1\OLDNAME NEWNAME
  2849.  
  2850.     DOS also supports the syntax supported by NetWare.
  2851.  
  2852. SOLUTION    
  2853.  
  2854.     NA
  2855.  
  2856.  
  2857.  
  2858.  
  2859. FYI:    NetWare Runtime, NetWare SQL 3.0, and Applications
  2860.                                      FYI
  2861.  
  2862. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2863.  
  2864.           TITLE:    NetWare Runtime, NetWare SQL 3.0, and Applications
  2865.    DOCUMENT ID#:    FYI.A.2426
  2866.            DATE:    31JUL92
  2867.         PRODUCT:    NetWare SQL
  2868. PRODUCT VERSION:    3.0
  2869.      SUPERSEDES:    NA
  2870.  
  2871.        SYMPTOM:    NA
  2872.  
  2873.  
  2874. ISSUE/PROBLEM    
  2875.  
  2876.     What are the special issues that need to be addressed when running a NetWare SQL application on a NetWare Runtime (1-user) server with NetWare SQL 3.0?
  2877.  
  2878. SOLUTION    
  2879.  
  2880.     NetWare Runtime is provided with every 20+ user count of NetWare SQL 3.0. It provides a means to run NetWare SQL applications in a dedicated database environment.
  2881.  
  2882.     NetWare Runtime only allows one NetWare connection/login to the server.  This connection is intended for administrative purposes, and is generally used by the supervisor in order to perform necessary maintenance on the server.
  2883.  
  2884.     However, since NetWare SQL does not require users to have a NetWare connection to the server in order to access NetWare SQL, this environment can be used for NetWare SQL applications.
  2885.  
  2886.     There are two restrictions for database applications when running on a NetWare Runtime server.  These are briefly described in the NetWare SQL Installation and Operation manual on page 2-38.
  2887.  
  2888.         The first restriction is that the NetWare Runtime server cannot accept direct Btrieve calls from an application.  Although NetWare SQL does not require a NetWare connection, NetWare Btrieve does.  Therefore, an application which makes only Btrieve calls, or makes both Btrieve and NetWare SQL calls cannot be run against files on a NetWare Runtime server.
  2889.  
  2890.         The second restriction is that the application must use a named database. Since the user does not have a connection, there are no drive mappings established for the Runtime server.  A named database can be defined on the NetWare Runtime server using the NetWare SQL Setup Utility indicating which directories contain the database files.  The application can then use this database name to login to NetWare SQL and access the data files.
  2891.  
  2892.     If the application and/or the data dictionary contains references to drive mappings, a NetWare SQL Requester Configuration File can be defined to indicate what directories on the NetWare Runtime server should be used whenever a particular drive mapping is encountered by the application.  This is described in more detail in the NetWare SQL Installation and Operation  manual on pages 2-47 to 2-48.
  2893.  
  2894.  
  2895.  
  2896.  
  2897. FYI:    NetWare 2.2 Non-Dedicated, Btrieve VAP, and Arcnet
  2898.                                      FYI
  2899.  
  2900. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2901.  
  2902.           TITLE:    NetWare 2.2 Non-Dedicated, Btrieve VAP, and Arcnet
  2903.    DOCUMENT ID#:    FYI.A.2425
  2904.            DATE:    31JUL92
  2905.         PRODUCT:    NetWare Btrieve VAP
  2906. PRODUCT VERSION:    5.15
  2907.      SUPERSEDES:    NA
  2908.  
  2909.        SYMPTOM:    Status 20 - Btrieve Not Loaded
  2910.  
  2911.  
  2912. ISSUE/PROBLEM    
  2913.  
  2914.     The following situation occurred on a network running NetWare v2.2 non-dedicated, one additional workstation, the patched Btrieve VAP v5.15, the patched Brequest v5.16, and Arcnet topology.
  2915.  
  2916.     When a Btrieve application is run at the workstation and also at the DOS side of the NetWare v2.2 non-dedicated server, everything works fine. However, if the user at the workstation logs out, turns off the workstation, and tries to run the Btrieve application at the server only, then a "Btrieve is not Loaded" error message is returned.
  2917.  
  2918.     Userlist shows two Btrieve VAP connections, so the Btrieve VAP is still loaded.  Why is Brequest not able to detect that the Btrieve VAP is loaded?
  2919.  
  2920. SOLUTION    
  2921.  
  2922.     First of all, the Arcnet topology is a token-passing topology, and requires at least two active workstations (or two workstations with shells loaded) to communicate with each other so that a token can be passed back and forth.
  2923.  
  2924.     The Btrieve VAP advertises itself through the bindery.  A problem exists when there is not another workstation to receive and return these advertisements.  When Brequest checks the bindery to see if the Btrieve VAP is loaded, it finds out that the Btrieve VAP cannot advertise itself, and a "Btrieve is not Loaded" error message returns.
  2925.  
  2926.     There are two workarounds for this problem:
  2927.  
  2928.     1.    always have one active workstation (besides the non-dedicated server) when using Arcnet;
  2929.  
  2930.     2.    Use a different topology (such as Ethernet)
  2931.  
  2932.  
  2933.  
  2934.  
  2935. FYI:    Active Named Databases
  2936.                                      FYI
  2937.  
  2938. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2939.  
  2940.           TITLE:    Active Named Databases
  2941.    DOCUMENT ID#:    FYI.A.1761
  2942.            DATE:    31JUL92
  2943.         PRODUCT:    NetWare SQL
  2944. PRODUCT VERSION:    3.0
  2945.      SUPERSEDES:    NA
  2946.  
  2947.        SYMPTOM:    NDBMON and SQLScope does not show database name
  2948.  
  2949.  
  2950. ISSUE/PROBLEM    
  2951.  
  2952.     When defining a named database through the NDBSETUP.NLM, there may be a delay before NSSPXCOM.NLM starts advertising that name on the network.
  2953.  
  2954.     NSSPXCOM periodically checks to see if anything has changed in the DBNAMES.CFG file, which is where the database names are stored.
  2955.     If NSSPXCOM is unloaded and reloaded, it should start advertising all defined database names (which are not already being advertised from another server) immediately.
  2956.  
  2957. SOLUTION    
  2958.  
  2959.     NA
  2960.  
  2961.  
  2962.  
  2963.  
  2964. FYI:    Assembler Errors Returned for SPXESR.ASM Using Large Model
  2965.                                      FYI
  2966.  
  2967. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  2968.  
  2969.           TITLE:    Assembler Errors Returned for SPXESR.ASM Using Large Model
  2970.    DOCUMENT ID#:    FYI.A.1326
  2971.            DATE:    31JUL92
  2972.         PRODUCT:    NetWare C for Windows
  2973. PRODUCT VERSION:    1.22
  2974.      SUPERSEDES:    NA
  2975.  
  2976.        SYMPTOM:    Error A2024:Segment parameter has changed
  2977.  
  2978. ISSUE/PROBLEM    
  2979.  
  2980.     When assembling the SPXESR.ASM with CMACROS.INC v5.02 in large model, the above error is returned for the createSeg macro.  The reason for this is that the assembler uses simplified segment directives which sets the following default segments and types for the large memory model .CODE directive:
  2981.  
  2982.          DIRECTIVE  NAME       ALIGN  COMBINE  CLASS
  2983.  
  2984.     The SPXESR has the following macro:
  2985.  
  2986.          createSeg SPXESR_TEXT,CODE1,BYTE,PUBLIC,CODE
  2987.  
  2988.     When assembled, the above error message is returned since we define the alignment to be BYTE instead of WORD.
  2989.  
  2990. SOLUTION    
  2991.  
  2992.     Modify the line with WORD instead of BYTE.
  2993.  
  2994.  
  2995.  
  2996.  
  2997. FYI:    Query Name Service Returns All Ports under NASI v3.0
  2998.                                      FYI
  2999.  
  3000. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3001.  
  3002.           TITLE:    Query Name Service Returns All Ports under NASI v3.0
  3003.    DOCUMENT ID#:    FYI.A.1325
  3004.            DATE:    31JUL92
  3005.         PRODUCT:    NASI
  3006. PRODUCT VERSION:    3.0
  3007.      SUPERSEDES:    NA
  3008.  
  3009.        SYMPTOM:    Query Name Service returns the first port it finds.
  3010.  
  3011. ISSUE/PROBLEM    
  3012.  
  3013.     When issuing a NASI function Query Name Service (21h), the first port found is returned to the querying application.  Prior to version 3.0 of NASI, the first unassigned port was returned for the application to connect.
  3014.  
  3015. SOLUTION    
  3016.  
  3017.     The Query Name Service request buffer is documented as 30 bytes long. There are two additional bytes which have been added to the end of the buffer.  The first byte returns the port number and the second byte returns the status of the port.  This status should be used to determine if the port is available. The possible return values for the status are:
  3018.  
  3019.          0 = Idle (Available)
  3020.          1 = Allocated (Available)
  3021.          2 = Connected
  3022.          3 = On Hold
  3023.  
  3024.  
  3025.  
  3026.  
  3027. FYI:    NLMs and Multiple Line COPYRIGHT Messages
  3028.                                      FYI
  3029.  
  3030. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3031.  
  3032.           TITLE:    NLMs and Multiple Line COPYRIGHT Messages
  3033.    DOCUMENT ID#:    FYI.A.2673
  3034.            DATE:    30JUL92
  3035.         PRODUCT:    Network C for NLMs
  3036. PRODUCT VERSION:    2.0
  3037.      SUPERSEDES:    NA
  3038.  
  3039.        SYMPTOM:    Displaying several lines in the Copyright message for an NLM
  3040.  
  3041. ISSUE/PROBLEM    
  3042.  
  3043.     Yes, it is possible to have a multi-line copyright message.  Here is how:
  3044.  
  3045.     1.    Put 2 dummy characters where the CR LF would be in the copyright message.  For Example:  In the *.LNK file:
  3046.  
  3047.         option copyright 'This is the 1st line$#The Third$#The last'
  3048.  
  3049.     2.    Using DEBUG or its pseudo application, replace each "$" with a "0x0D" an the "#" with a "0x0A", in the copyright statement (very near the top of the NLM.
  3050.  
  3051.     That is it.  Theoretically the maximum is 255 characters.
  3052.  
  3053. SOLUTION    
  3054.  
  3055.     NA
  3056.  
  3057.  
  3058.  
  3059.  
  3060. FYI:    Storing and Recalling Views with Different Versions
  3061.                                      FYI
  3062.  
  3063. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3064.  
  3065.           TITLE:    Storing and Recalling Views with Different Versions
  3066.    DOCUMENT ID#:    FYI.A.3018
  3067.            DATE:    29JUL92
  3068.         PRODUCT:    NetWare SQL
  3069. PRODUCT VERSION:    3.0
  3070.      SUPERSEDES:    NA
  3071.  
  3072.        SYMPTOM:    Status 253 returned by Xtrieve while recalling a view
  3073.  
  3074.  
  3075. ISSUE/PROBLEM    
  3076.  
  3077.     If a view is stored in Xtrieve using NetWare SQL 3.0, it cannot be recalled using XQLP 2.11 or NetWare SQL 2.11.  When attempting to do so, Xtrieve will return a status 253 (incorrect version of view definition).  However, NetWare SQL 3.0 is able to recall views that are stored by XQL/NetWare SQL 2.11 through Xtrieve.
  3078.  
  3079. SOLUTION    
  3080.  
  3081.     NA
  3082.  
  3083.  
  3084.  
  3085.  
  3086. FYI:    Disappearing Attributes with Xtrieve 4.10
  3087.                                      FYI
  3088.  
  3089. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3090.  
  3091.           TITLE:    Disappearing Attributes with Xtrieve 4.10
  3092.    DOCUMENT ID#:    FYI.A.3017
  3093.            DATE:    29JUL92
  3094.         PRODUCT:    Xtrieve PLUS
  3095. PRODUCT VERSION:    4.10
  3096.      SUPERSEDES:    NA
  3097.  
  3098.        SYMPTOM:    Attributes specified for fields disappear from edit screen.
  3099.  
  3100.  
  3101. ISSUE/PROBLEM    
  3102.  
  3103.     If several views are active at the same time, attributes defined in the dictionary, such as default values, may not show up on the Edit screen. This is because XQLP is running out of buffers.  If any other active views are released, or XQLP is loaded with a larger /b parameter, the attributes reappear.
  3104.  
  3105. SOLUTION    
  3106.  
  3107.     Load XQLP with a larger /b parameter.  The maximum /b value for XQLP NetWare v2.11a software is 36.
  3108.  
  3109.  
  3110.  
  3111.  
  3112. FYI:    NetWare LU6.2 Feb Release / Common Return Codes Listing
  3113.                                      FYI
  3114.  
  3115. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3116.  
  3117.           TITLE:    NetWare LU6.2 Feb Release / Common Return Codes Listing
  3118.    DOCUMENT ID#:    FYI.A.2844
  3119.            DATE:    29JUL92
  3120.         PRODUCT:    LU6.2 Tools for DOS
  3121. PRODUCT VERSION:    1.2
  3122.      SUPERSEDES:    NA
  3123.  
  3124.        SYMPTOM:    Missing common return codes
  3125.  
  3126. ISSUE/PROBLEM    
  3127.  
  3128.     The Netware APPC Technical Reference manual does not have common return codes listed at the back of the manual.  It has verb specific and syslog return codes but common returns codes are missing.
  3129.  
  3130. SOLUTION    
  3131.  
  3132.     Use the old manual which has common return codes listed. It has been reported as a documentation error and will be corrected in next version.
  3133.  
  3134.  
  3135.  
  3136.  
  3137. FYI:    Cannot have Underscores in a Filename Used with EDIT.NLM
  3138.                                      FYI
  3139.  
  3140. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3141.  
  3142.           TITLE:    Cannot have Underscores in a Filename Used with EDIT.NLM
  3143.    DOCUMENT ID#:    FYI.A.2837
  3144.            DATE:    29JUL92
  3145.         PRODUCT:    Network C for NLMs
  3146. PRODUCT VERSION:    2.0
  3147.      SUPERSEDES:    NA
  3148.  
  3149.        SYMPTOM:    EDIT.NLM does not take underscores in a filename.
  3150.  
  3151.  
  3152. ISSUE/PROBLEM    
  3153.  
  3154.     Files containing underscores in their filename cannot be edited with the EDIT.NLM.  This was reproduced with the EDIT.NLM dated 08-29-90.
  3155.  
  3156. SOLUTION    
  3157.  
  3158.     NA
  3159.  
  3160.  
  3161.  
  3162.  
  3163. FYI:    How to Configure Private/Global DOS Boxes under OS/2 2.0
  3164.                                      FYI
  3165.  
  3166. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3167.  
  3168.           TITLE:    How to Configure Private/Global DOS Boxes Under OS/2 2.0
  3169.    DOCUMENT ID#:    FYI.A.1870
  3170.            DATE:    29JUL92
  3171.         PRODUCT:    OS/2
  3172. PRODUCT VERSION:    2.0
  3173.      SUPERSEDES:    NA
  3174.  
  3175.        SYMPTOM:    NA
  3176.  
  3177.  
  3178. ISSUE/PROBLEM    
  3179.  
  3180.     How do you set up a Private DOS box or Global DOS box in OS/2 2.0?
  3181.  
  3182. SOLUTION    
  3183.  
  3184.     1.    Check CONFIG.SYS to be sure that the following two lines appear:
  3185.  
  3186.             DEVICE=D:\NETWARE\VIPX.SYS
  3187.             DEVICE=D:\NETWARE\VSHELL.SYS
  3188.  
  3189.         If they are REMmed out, be sure to remove the REM from both lines.
  3190.         NOTE:  If they are REMmed out, make sure to restart the machine after removing the REM.
  3191.  
  3192.     2.    Select the COMMAND PROMPTS folder from the OS/2 SYSTEM ICON.  When selecting it, the OS/2 Full Screen, OS/2 Window, DOS Full Screen, DOS Window etc... Icons will appear.
  3193.  
  3194.     3.    Position the mouse over the DOS Full Screen or DOS Window ICON.  Press the RIGHT or SECOND mouse button.  The first selection on the Pop-up Menu will be OPEN.
  3195.  
  3196.     4.    Select "OPEN."
  3197.  
  3198.     5.    Select "SETTINGS."
  3199.  
  3200.     6.    Select the "SESSION" tab.
  3201.  
  3202.     7.    Select "DOS Settings."
  3203.  
  3204.     8.    The "DOS Settings" selection will bring up a list box.  Go down to the NETWARE_RESOURCES entry and select it.  Up in the right hand corner of the box there will be a VALUE: selection box.  The values that can be selected are NONE, PRIVATE, GLOBAL.  NONE and PRIVATE should be the same right now.  Select the mode desired.  After selecting, SAVE the configuration.
  3205.  
  3206.     9.    Exit the SETTINGS menu by double clicking on the left hand corner folder ICON.
  3207.  
  3208.     10.    Now run the DOS box.
  3209.  
  3210.         For a PRIVATE DOS box, the Virtual IPX driver is loaded.
  3211.  
  3212.         For the GLOBAL DOS box, VIPX and the Virtual Shell drivers are loaded.
  3213.  
  3214.     There may be other methods of setting the GLOBAL and PRIVATE dos boxes; this is just to pass on one method that was tried.
  3215.  
  3216.  
  3217.  
  3218.  
  3219. FYI:    Brequest and OS/2 2.0 DOS Boxes
  3220.                                      FYI
  3221.  
  3222. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3223.  
  3224.           TITLE:    Brequest and OS/2 2.0 DOS Boxes
  3225.    DOCUMENT ID#:    FYI.A.1869
  3226.            DATE:    29JUL92
  3227.         PRODUCT:    NetWare Btrieve VAP
  3228. PRODUCT VERSION:    5.15
  3229.      SUPERSEDES:    NA
  3230.  
  3231.        SYMPTOM:    System Halted
  3232.  
  3233.  
  3234. ISSUE/PROBLEM    
  3235.  
  3236.     Does Brequest work in an OS/2 2.0 DOS Box?
  3237.  
  3238. SOLUTION    
  3239.  
  3240.     Brequest v5.16 along with Btrieve v5.15 NLM will not run properly in multiple PRIVATE DOS boxes.  The system is halted.  This has been reported to development.
  3241.  
  3242.     Brequest v5.16 along with the Btrieve v5.15 NLM appears not to work in a GLOBAL DOS box either.  Trap D occurs when Btrieve calls are made.  This has been reported to development.
  3243.  
  3244.  
  3245.  
  3246.  
  3247. FYI:    How Is a PRIVATE DOS BOX Run?
  3248.                                      FYI
  3249.  
  3250. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3251.  
  3252.           TITLE:    How Is a PRIVATE DOS BOX Run?
  3253.    DOCUMENT ID#:    FYI.A.1868
  3254.            DATE:    29JUL92
  3255.         PRODUCT:    OS/2
  3256. PRODUCT VERSION:    2.0
  3257.      SUPERSEDES:    NA
  3258.  
  3259.        SYMPTOM:    NA
  3260.  
  3261.  
  3262. ISSUE/PROBLEM    
  3263.  
  3264.     How is a PRIVATE DOS BOX run?
  3265.  
  3266. SOLUTION    
  3267.  
  3268.     This FYI is meant to show a basic way to set up the PRIVATE DOS box.  It does not cover all possible setup features.
  3269.  
  3270.     After starting the DOS BOX change directory to the NETWARE directory. NETX.COM can be found there.  Run NETX.COM.  Then go to the LOGIN drive. If the DOS BOX has not been customized by any means, then it is usually found on drive L:.
  3271.  
  3272.     After logging in, be sure to check that COMSPEC is still set correctly.  Check to be sure that the path specified by COMSPEC is still appropriate for the environment.  OS/2 by default sets COMSPEC to C:\OS2\MDOS\COMMAND.COM.  If the login procedure has changed that value and it is not clear if the current setting is valid, change it back to the OS/2 setting.
  3273.  
  3274.  
  3275.  
  3276.  
  3277. FYI:    Difference between Global and Private DOS Boxes
  3278.                                      FYI
  3279.  
  3280. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3281.  
  3282.           TITLE:    Difference between Global and Private DOS Boxes
  3283.    DOCUMENT ID#:    FYI.A.1867
  3284.            DATE:    29JUL92
  3285.         PRODUCT:    OS/2
  3286. PRODUCT VERSION:    2.0
  3287.      SUPERSEDES:    NA
  3288.  
  3289.        SYMPTOM:    NA
  3290.  
  3291.  
  3292. ISSUE/PROBLEM    
  3293.  
  3294.     What is the difference between a Global DOS Box and a Private DOS Box in OS/2 2.0?
  3295.  
  3296. SOLUTION    
  3297.  
  3298.     A GLOBAL DOS box maintains all mappings to a server that a previous OS2 session had established.  It is the same NetWare connection as all the previous OS/2 sessions.  The GLOBAL DOS is much like the DOS box in OS/2 1.3 in the way it adopts all previous OS/2 session mappings and logins. The major difference is that there can be multiple GLOBAL DOS boxes in OS/2 2.0.
  3299.  
  3300.     A PRIVATE DOS box creates a new connection with the file server that is being logged into.  If logging into the same file server that the user already had connections with in the OS/2 sessions, then USERLIST would report two USERS with that login name.  For each PRIVATE DOS box a new connection number is assigned.
  3301.  
  3302.  
  3303.  
  3304.  
  3305. FYI:    What Are VIPX and VSHELL in OS/2?
  3306.                                      FYI
  3307.  
  3308. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3309.  
  3310.           TITLE:    What Are VIPX and VSHELL in OS/2?
  3311.    DOCUMENT ID#:    FYI.A.1866
  3312.            DATE:    29JUL92
  3313.         PRODUCT:    OS/2
  3314. PRODUCT VERSION:    2.0
  3315.      SUPERSEDES:    NA
  3316.  
  3317.        SYMPTOM:    NA
  3318.  
  3319.  
  3320. ISSUE/PROBLEM    
  3321.  
  3322.     In the CONFIG.SYS for OS2 2.0 there are two drivers listed, VIPX.SYS and VSHELL.SYS.  What are they?
  3323.  
  3324. SOLUTION    
  3325.  
  3326.     VIPX.SYS is a virtual IPX driver.
  3327.  
  3328.     VSHELL.SYS is a virtual shell.
  3329.  
  3330.     Both of these drivers are used with the OS/2 dos box to support IPX/SPX communication in the DOS box.  VSHELL allows the user to maintain the same mappings to their file servers as was established by previous OS/2 sessions.
  3331.  
  3332.  
  3333.  
  3334.  
  3335. FYI:    Status 26 on Create Table Statement
  3336.                                      FYI
  3337.  
  3338. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3339.  
  3340.           TITLE:    Status 26 on Create Table Statement
  3341.    DOCUMENT ID#:    FYI.A.1760
  3342.            DATE:    29JUL92
  3343.         PRODUCT:    NetWare SQL
  3344. PRODUCT VERSION:    3.0
  3345.      SUPERSEDES:    NA
  3346.  
  3347.        SYMPTOM:    Status 26 - Number of Keys
  3348.  
  3349.  
  3350. ISSUE/PROBLEM    
  3351.  
  3352.     The CREATE TABLE statement in NetWare SQL 3.0 has an option to specify the page size for the resulting Btrieve file.
  3353.  
  3354.     If no page size is specified, NetWare SQL determines an optimum page size based on the lengths of all the fields in the table, the number of indexes that allow duplicates and other options that might be specified.
  3355.  
  3356.     With certain table definitions, it is possible that NetWare SQL may determine that the optimum page size for a file is 1024 bytes, but does not take into account the fact that the definition contains 24 key segments.
  3357.  
  3358.     In this case, a status 26 (Number of Keys) will be returned and the CREATE TABLE will fail.
  3359.  
  3360.     With Btrieve v6.0, only 23 key segments can be defined for a Btrieve file with a page size of 1024.  Earlier versions of Btrieve allowed 24 key segments on a file with a 1024 page size.
  3361.  
  3362. SOLUTION    
  3363.  
  3364.     Use the PAGESIZE option in the CREATE TABLE statement to explicitly tell NetWare SQL what page size should be used.
  3365.  
  3366.  
  3367.  
  3368.  
  3369. FYI:    XQL and .SHR Files
  3370.                                      FYI
  3371.  
  3372. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3373.  
  3374.           TITLE:    XQL and .SHR Files
  3375.    DOCUMENT ID#:    FYI.A.1759
  3376.            DATE:    29JUL92
  3377.         PRODUCT:    XQL for DOS
  3378. PRODUCT VERSION:    2.11
  3379.      SUPERSEDES:    NA
  3380.  
  3381.        SYMPTOM:    Sharing Violation error
  3382.  
  3383.  
  3384. ISSUE/PROBLEM    
  3385.  
  3386.     When the client version of XQL is loaded (XQL.EXE, XQLO.EXE, XQLP.EXE or XQLPO.EXE), it creates a "share" file, which is in the form of TAnnnnnn.SHR (where nnnnnn is a randomly generated number).
  3387.     This file is created in the directory specified by the "/x:" parameter (which is where temporary sort files will be created), or in the user's current working directory if there is no "/x:" parameter specified.  Before creating this file, XQL performs a clean-up operation to get rid of any extraneous .SHR files currently in the directory.  These could have been left if a user rebooted a workstation without first unloading XQL.
  3388.  
  3389.     When doing the clean-up, XQL attempts to delete each .SHR file in the directory.  If a file was left from a previous session, it will be deleted. If a .SHR file in the directory is currently in use by another user, the delete will fail since the file is open.  XQL does not check whether the delete succeeded or failed, and does not do any error checking on its attempted deletes.
  3390.  
  3391.     The failed deletes due to an in-use .SHR file can produce different results in different environments.  Under NetWare, when the delete fails, the DOS Error Level is set to 1, and the program continues.  Under LAN Manager, attempting to delete an open file causes a sharing violation, which sets the DOS Error Level to 2, which is a critical error and aborts the program.  In this environment, XQL fails to load when using a directory for its .SHR file that is already being used by another XQL user.
  3392.  
  3393. SOLUTION    
  3394.  
  3395.     In an environment where the sharing violation occurs, each user will have to specify a unique temporary sort file directory with the "/x:" parameter to successfully load XQL.  One way to do this is to set "/x:" to a local drive or to the users directory on the network.
  3396.  
  3397.  
  3398.  
  3399.  
  3400. FYI:    Ordinal Numbers for C-Interface for Windows
  3401.                                      FYI
  3402.  
  3403. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3404.  
  3405.           TITLE:    Ordinal Numbers for C-Interface for Windows
  3406.    DOCUMENT ID#:    FYI.A.2669
  3407.            DATE:    27JUL92
  3408.         PRODUCT:    NetWare C for Windows
  3409. PRODUCT VERSION:    1.3
  3410.      SUPERSEDES:    NA
  3411.  
  3412.        SYMPTOM:    NA
  3413.  
  3414.  
  3415. ISSUE/PROBLEM    
  3416.  
  3417.     What are the ordinal numbers for the Application Program Interfaces (APIs)?
  3418.  
  3419.     When the C-Interface for Windows 1.3 SDK was introduced, the included DLLs were restructured, and the ordinal numbers do not match those in the documentation.
  3420.  
  3421. SOLUTION    
  3422.  
  3423.     The correct ordinal numbers may be found in the .DEF files on the distribution disks under the \SRC directories.  The files are NWIPXSPX.DEF (communications, diagnostics and SAP), NWNETAPI.DEF (all non-communication services), and NWPSREV.DEF (print server services).
  3424.  
  3425.  
  3426.  
  3427.  
  3428. FYI:    Status 870 on ALTER TABLE to Add Primary Key
  3429.                                      FYI
  3430.  
  3431. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3432.  
  3433.           TITLE:    Status 870 on ALTER TABLE to Add Primary Key
  3434.    DOCUMENT ID#:    FYI.A.1938
  3435.            DATE:    27JUL92
  3436.         PRODUCT:    NetWare SQL
  3437. PRODUCT VERSION:    3.0
  3438.      SUPERSEDES:    NA
  3439.  
  3440.        SYMPTOM:    Status 870 - Index Must Exist on ALTER TABLE
  3441.  
  3442.  
  3443. ISSUE/PROBLEM    
  3444.  
  3445.     Using NWSQL v3.0, if an ALTER TABLE is performed to add a primary key to a table that has RI defined on it, a status 870 (Index Must Exist On ALTER TABLE) is returned, even though the key that is being added as a primary key is defined in the table as a unique, non-null index.  This only happens if the index in question is a segmented index, even though all the segments of the index are being used for the primary key.
  3446.  
  3447. SOLUTION    
  3448.  
  3449.     The workaround to this is the following:  If the segmented key is defined in the table as index 0, then this error is not returned and the primary key definition is added properly.
  3450.  
  3451.  
  3452.  
  3453.  
  3454. FYI:    BUTIL -STAT Returns Status 94
  3455.                                      FYI
  3456.  
  3457. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3458.  
  3459.           TITLE:    BUTIL -STAT Returns Status 94
  3460.    DOCUMENT ID#:    FYI.A.1937
  3461.            DATE:    27JUL92
  3462.         PRODUCT:    NetWare Btrieve NLM
  3463. PRODUCT VERSION:    5.15
  3464.      SUPERSEDES:    NA
  3465.  
  3466.        SYMPTOM:    Status 94 - Permission Error
  3467.  
  3468.  
  3469. ISSUE/PROBLEM    
  3470.  
  3471.     A BUTIL -STAT of a Btrieve file flagged RO (ReadOnly) to NetWare, returns status 94.  This was verified with BUTIL.EXE 5.12 (and Btrieve for DOS 5.10a) and with BUTIL.NLM v5.15a (and Btrieve NLM v5.15).  This was also verified to be the case with BUTIL NLM v6.01 and Btrieve NLM v6.0.
  3472.  
  3473.     The use of BDEBUG (with BUTIL 5.12) revealed that BUTIL was attempting to open the file in Btrieve's NORMAL mode, which requires Read/Write access.  Hence, the status 94.
  3474.  
  3475. SOLUTION    
  3476.  
  3477.     The current workaround is to flag the file RW (ReadWrite).
  3478.  
  3479.  
  3480.  
  3481.  
  3482. FYI:    BUTIL.NLM 5.15a Requires Volume Name in Path
  3483.                                      FYI
  3484.  
  3485. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3486.  
  3487.           TITLE:    BUTIL.NLM 5.15a Requires Volume Name in Path
  3488.    DOCUMENT ID#:    FYI.A.1936
  3489.            DATE:    27JUL92
  3490.         PRODUCT:    NetWare Btrieve NLM
  3491. PRODUCT VERSION:    5.15
  3492.      SUPERSEDES:    NA
  3493.  
  3494.        SYMPTOM:    Status 91 - Server Error
  3495.  
  3496.  
  3497. ISSUE/PROBLEM    
  3498.  
  3499.     BUTIL.NLM 5.15a requires that the volume name be part of the file name provided for BUTIL operations.  For instance, the following syntax returns status 91 (Server Error) even if the file "FILENAME.BTR" is at the root directory of the server's SYS: volume:
  3500.  
  3501.         load butil -stat filename.btr
  3502.  
  3503.     However, following syntax returns the correct STAT information:
  3504.  
  3505.         load butil -stat sys:filename.btr
  3506.  
  3507. SOLUTION    
  3508.  
  3509.     Always specify a complete path including the volume name for each Btrieve file involved in the BUTIL operation to be performed.
  3510.  
  3511.  
  3512.  
  3513.  
  3514. FYI:    BUTIL 6.x Returns Version of Btrieve File
  3515.                                      FYI
  3516.  
  3517. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3518.  
  3519.           TITLE:    BUTIL 6.x Returns Version of Btrieve File
  3520.    DOCUMENT ID#:    FYI.A.1935
  3521.            DATE:    27JUL92
  3522.         PRODUCT:    NetWare SQL
  3523. PRODUCT VERSION:    6.0
  3524.      SUPERSEDES:    NA
  3525.  
  3526.        SYMPTOM:    NA
  3527.  
  3528.  
  3529. ISSUE/PROBLEM    
  3530.  
  3531.     Included in the information returned by BUTIL -STAT (BUTIL 6.x), is the version of the Btrieve file.  If the Btrieve file is a pre-6.0 file it returns:
  3532.  
  3533.         File Version   pre 6.0
  3534.  
  3535.     If the Btrieve file is a 6.0 file, it returns:
  3536.  
  3537.         File Version   60          (that is right, without the period!)
  3538.  
  3539.     BUTIL 5.x did not return this information.
  3540.  
  3541. SOLUTION    
  3542.  
  3543.     NA
  3544.  
  3545.  
  3546.  
  3547.  
  3548. FYI:    Declaring DLL Routines in Visual Basic
  3549.                                      FYI
  3550.  
  3551. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3552.  
  3553.           TITLE:    Declaring DLL Routines in Visual Basic
  3554.    DOCUMENT ID#:    FYI.A.2117
  3555.            DATE:    22JUL92
  3556.         PRODUCT:    ALL
  3557. PRODUCT VERSION:    ALL
  3558.      SUPERSEDES:    NA
  3559.  
  3560.        SYMPTOM:    NA
  3561.  
  3562. ISSUE/PROBLEM    
  3563.  
  3564.     Since most DLL routines are written in C, this can cause problems for developers using Visual Basic. In order to translate the syntax of a typical API routine into a Visual Basic DECLARE statement, the developer must understand something about how both C and Visual Basic pass their arguments.
  3565.  
  3566.     The following information will be useful in determining how to set up DECLARE statements in the Global Module of a Visual Basic application when using any of the Novell Database and Developer APIs.
  3567.  
  3568. SOLUTION    
  3569.  
  3570.     The usual way for C to pass numeric arguments is by Value: a copy of the value of the argument is passed to the routine.  Sometimes C arguments are pointers, and these arguments are said to be passed by reference. Passing an argument by reference allows the called routine to modify the argument and return it to the calling routine. 
  3571.  
  3572.     C strings (Zstrings) and arrays are always passed by reference.  Visual Basic, by default, passes all of its arguments by reference.  In effect, when arguments are passed to a Visual Basic procedure, they are actually passed as "far" (32 bit) pointers to those values.
  3573.  
  3574.     To pass arguments to a C routine that expects its arguments to be passed by value, the ByVal keyword must be used with the argument in the Declaration statement.  One added wrinkle to this, is that Visual Basic strings do not use the same format as C strings.  Visual Basic has overloaded the ByVal keyword to mean "pass a C string" when it is used with a string argument in a Declare statement.  The following table can be used to help determine how certain arguments in an API call should be passed.
  3575.  
  3576.      If the argument is:                                   Declare it as:
  3577.  
  3578.      A standard C string (LPSTR, char far *)               ByVal S$
  3579.      A Visual Basic String (see note)                      S$
  3580.      An integer (WORD, HANDLE, int)                        ByVal I%
  3581.      A pointer to an integer (LPINT, int far *)            I%
  3582.      A long (DWORD, unsigned long)                         ByVal L&
  3583.      A pointer to a long (LPDWORD, LPLONG, DWORD far *)    L&
  3584.      A standard C array (A[])                              Base type of Array
  3585.      A Visual Basic array (see note)                       A()
  3586.      A structure (user-defined TYPE)                       S As Struct
  3587.  
  3588.     Note:  Never pass a Visual Basic string or array to a DLL routine unless the DLL was written specifically for use with Visual Basic.  Visual Basic strings and arrays are represented in memory by "descriptors" (not pointers), which are useless to DLL routines that were not written with Visual Basic in mind.
  3589.  
  3590.     Visual Basic also allows arguments to be passed AS ANY.  The AS ANY "data type" tells Visual Basic not to do any type checking for that argument.  The developer can pass the function anything as long as it is what the function is expecting.  If not, the application will probably UAE.
  3591.  
  3592.     If an argument is declared AS ANY, it must be specified in the call how the argument shall be passed to the calling function.  This is done by using the ByVal keyword for strings and for arguments that should be passed by value, and omitting the ByVal keyword for arguments that should be passed by reference.
  3593.  
  3594.     For example:  Using Btrieve, the situation may arise where the key buffer parameter must be passed differently depending on the operation that is to be performed.  Simply declare the Key Buffer parameter AS ANY in the Global Module and setup the Btrieve call as follows:
  3595.  
  3596.     'Global Module
  3597.     Declare Function btrcall Lib "wbtrcall.dll" (ByVal Op%, ByVal Pb$, Db As Any,
  3598.         DL As Integer, Kb As Any, BVal Kl%,
  3599.         ByVal Kn%) As Integer
  3600.     
  3601.     'Open File
  3602.      OPEN%=0
  3603.      PosBlk$=space$(128)
  3604.      FileName$ = "F:\APPS\MYFILE.BTR "
  3605.      DL%=Len(DataBuf)
  3606.      KLen% = Len(FileName$)
  3607.  
  3608.     Status% = btrcall(OPEN%, PosBlk$, DataBuf, DL%, ByVal FileName$, KLen%, 0)
  3609.  
  3610.     Notice that the key buffer parameter (FileName$) is being specified to be passed by Value.  Suppose later on in the code, the developer wants to pass a user-defined type for the key buffer on a GET EQUAL operation.  Simply pass the structure by name for the key buffer as follows:
  3611.  
  3612.      'Global Module
  3613.      Type DateStruct
  3614.         Day            As String * 1
  3615.         Month          As String * 1
  3616.         Year           As Integer
  3617.      End Type
  3618.      Global Birthdate As DateStruct
  3619.  
  3620.      'Main Module
  3621.      'Get Equal
  3622.       GE%=5
  3623.       DLen% = Len(DataBuf)
  3624.       Birthdate.Day = Chr$(3)
  3625.       Birthdate.Month=Chr$(6)
  3626.       Birthdate.Year=1966
  3627.       KbLen% = Len(Birthdate)
  3628.       KeyNum% = 1
  3629.  
  3630.     Status% = btrcall(GE%, PosBlk$, DataBuf, DLen%, Birthdate, KbLen%, KeyNum%)
  3631.  
  3632.  
  3633.  
  3634.  
  3635. FYI:    Least Value Returned for Duplicate Supplemental Key
  3636.                                      FYI
  3637.  
  3638. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3639.  
  3640.           TITLE:    Least Value Returned for Duplicate Supplemental Key
  3641.    DOCUMENT ID#:    FYI.A.4302
  3642.            DATE:    21JUL92
  3643.         PRODUCT:    NetWare Btrieve NLM
  3644. PRODUCT VERSION:    5.15
  3645.      SUPERSEDES:    NA
  3646.  
  3647.        SYMPTOM:    NA
  3648.  
  3649.  
  3650. ISSUE/PROBLEM    
  3651.  
  3652.     A Btrieve operation 11 (Get Less Than or Equal) on a duplicate supplemental key returns the least value in the list even though that value is greater than the compared value (value in the Key buffer).
  3653.  
  3654.      Example:  Key Values = {20, 24, 30, 40, 55}
  3655.  
  3656.     If the key buffer (compared value) has a value of 10 and the operation 11 is performed, Btrieve returns a value 20 (least value of the list).  This operation should not return any values because 20 is not less than 10.  This problem only exists when attempting to perform the operation 11 with a value less than the smallest value in the index.
  3657.  
  3658.     This situation does not exist under client Btrieve.
  3659.  
  3660. SOLUTION    
  3661.  
  3662.     This has been submitted as a bug.  No solution/workaround is provided at this time.
  3663.  
  3664.  
  3665.  
  3666.  
  3667. FYI:    Status 84 (Record in Use) Returned on an Insert Operation
  3668.                                      FYI
  3669.  
  3670. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3671.  
  3672.           TITLE:    Status 84 (Record in Use) Returned on an Insert Operation
  3673.    DOCUMENT ID#:    FYI.A.4301
  3674.            DATE:    21JUL92
  3675.         PRODUCT:    NetWare Btrieve NLM
  3676. PRODUCT VERSION:    6.0
  3677.      SUPERSEDES:    NA
  3678.  
  3679.        SYMPTOM:    Status 84 on insert operation
  3680.  
  3681.  
  3682. ISSUE/PROBLEM    
  3683.  
  3684.     Getting a status 84 "Record in Use" on an insert is a valid status code.  This situation generally occurs in an environment where a high volume of Btrieve I/O operations are occurring, and was first seen during a simulation performing high-speed random inserts.
  3685.  
  3686.     On an insert operation, Btrieve may return this status code because it is locking the key page for a brief period of time to update the information regarding the key value specified for the newly inserted record.  At this time, if another user tries to insert a record that also needs to access the same key page, the insert will result in a Status 84.
  3687.  
  3688. SOLUTION    
  3689.  
  3690.     Applications should trap for this Status code and retry the insert operation.
  3691.  
  3692.  
  3693.  
  3694.  
  3695. FYI:    DOS NetBIOS and the OS/2 2.0 DOS Box
  3696.                                      FYI
  3697.  
  3698. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3699.  
  3700.           TITLE:    DOS NetBIOS and the OS/2 2.0 DOS Box
  3701.    DOCUMENT ID#:    FYI.A.3375
  3702.            DATE:    21JUL92
  3703.         PRODUCT:    NetWare System Calls
  3704. PRODUCT VERSION:    100
  3705.      SUPERSEDES:    Previous FYI dates 7-14-92
  3706.  
  3707.        SYMPTOM:    NetBIOS.EXE hangs in OS/2 2.0 Virtual DOS Machine (VDM)
  3708.  
  3709.  
  3710. ISSUE/PROBLEM    
  3711.  
  3712.     Under certain circumstances, NetBIOS.EXE hangs if loaded in an OS2 2.0 VDM.  This is true if the NETBIOS.SYS and NBDEAMON.EXE are loaded in the OS/2 CONFIG.SYS.  This is considered a design restraint.  It is not possible with the current implementation of the OS/2 2.0 Requester to load both OS/2 and DOS NetBIOS.
  3713.  
  3714. SOLUTION    
  3715.  
  3716.     NA
  3717.  
  3718.  
  3719.  
  3720.  
  3721. FYI:    Far Pointer Definition Problem with LU6.2 Tools
  3722.                                      FYI
  3723.  
  3724. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3725.  
  3726.           TITLE:    Far Pointer Definition Problem with LU6.2 Tools
  3727.    DOCUMENT ID#:    FYI.A.4118
  3728.            DATE:    16JUL92
  3729.         PRODUCT:    LU6.2 Tools for DOS
  3730. PRODUCT VERSION:    1.2
  3731.      SUPERSEDES:    NA
  3732.  
  3733.        SYMPTOM:    NA
  3734.  
  3735.  
  3736. ISSUE/PROBLEM    
  3737.  
  3738.     The header file CPIC_NET.H that goes out with Netware for SAA LU62 Tools has a problem with its handling of far pointer definitions when using WATCOM v8.0 or later.
  3739.  
  3740. SOLUTION    
  3741.  
  3742.     Replace lines 40-42 with the following -
  3743.  
  3744.          #ifdef far
  3745.             #undef far
  3746.          #endif
  3747.          #define far
  3748.  
  3749.  
  3750.  
  3751.  
  3752. FYI:    QueryServices() Returns Invalid Node Address
  3753.                                      FYI
  3754.  
  3755. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3756.  
  3757.           TITLE:    QueryServices() Returns Invalid Node Address
  3758.    DOCUMENT ID#:    FYI.A.1667
  3759.            DATE:    16JUL92
  3760.         PRODUCT:    NetWare C for Windows
  3761. PRODUCT VERSION:    1.3
  3762.      SUPERSEDES:    FYI.A.2635
  3763.  
  3764.        SYMPTOM:    NA
  3765.  
  3766.  
  3767. ISSUE/PROBLEM    
  3768.  
  3769.     The QueryServices() function seems to return an invalid internet address.
  3770.  
  3771. SOLUTION    
  3772.  
  3773.     Both the 1.22 and the 1.3 version of the C Interface-Windows SDK return the network, node, and socket in Intel lo-hi format.  In addition, the 1.3 version returns the node address in a different order.
  3774.  
  3775.     The correction for the 1.22 version was to reswap the values when they needed to be passed to another function.  However, in the 1.3 version, after swapping to hi-lo order, the last two bytes of the address (4 and 5) are at the beginning instead of the end.  For example, node address:
  3776.  
  3777.         00 11 22 33 44 55
  3778.  
  3779.     which should be stored in memory in the same byte order, is instead stored as:
  3780.  
  3781.         44 55 00 11 22 33
  3782.  
  3783.     To correct the situation, the following function can be added:
  3784.  
  3785.         ┌───────────────────────────┐
  3786.         │ BYTE *FixNode(BYTE *node) │
  3787.         │ {                         │
  3788.         │    BYTE temp[2];          │
  3789.         │                           │
  3790.         │    temp[0] = node[5];     │
  3791.         │    temp[1] = node[4];     │
  3792.         │    node[5] = node[3];     │
  3793.         │    node[4] = node[2];     │
  3794.         │    node[3] = node[1];     │
  3795.         │    node[2] = node[0];     │
  3796.         │    node[1] = temp[0];     │
  3797.         │    node[0] = temp[1];     │
  3798.         │    return node;           │
  3799.         │ }                         │
  3800.         └───────────────────────────┘
  3801.  
  3802.     and called like this:
  3803.  
  3804.         FixNode(sapBuffer.Node);
  3805.  
  3806.     The problem in the source to QueryServices() is easy enough to correct by removing the swaps of the network, node, and socket.  But, because there is no easy way to replace one module in a DLL, the above solution is simpler.
  3807.  
  3808.  
  3809.  
  3810.  
  3811. FYI:    _splitpath() in CLIB Does Not Work Properly
  3812.                                      FYI
  3813.  
  3814. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3815.  
  3816.           TITLE:    _splitpath() in CLIB Does Not Work Properly
  3817.    DOCUMENT ID#:    FYI.A.3852
  3818.            DATE:    14JUL92
  3819.         PRODUCT:    Network C for NLMs
  3820. PRODUCT VERSION:    SDKc
  3821.      SUPERSEDES:    NA
  3822.  
  3823.        SYMPTOM:    NA
  3824.  
  3825.  
  3826. ISSUE/PROBLEM    
  3827.  
  3828.     _splitpath() returns incorrect results in the drive parameter.
  3829.  
  3830. SOLUTION    
  3831.  
  3832.     _splitpath() is supposed to return the volume name in the drive parameter, but it does not. It is not NetWare aware.
  3833.  
  3834.     There is an alternate source of _splitpath() available upon request until it is fixed in the CLIB.NLM.
  3835.  
  3836.  
  3837.  
  3838.  
  3839. FYI:    IPXODI and IPX/SPX Communications on NetWare Lite
  3840.                                      FYI
  3841.  
  3842. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3843.  
  3844.           TITLE:    IPXODI and IPX/SPX Communications on NetWare Lite
  3845.    DOCUMENT ID#:    FYI.A.3374
  3846.            DATE:    10JUL92
  3847.         PRODUCT:    NetWare C Interface DOS
  3848. PRODUCT VERSION:    1.2
  3849.      SUPERSEDES:    NA
  3850.  
  3851.        SYMPTOM:    Unable to initialize IPX/SPX.
  3852.  
  3853.  
  3854. ISSUE/PROBLEM    
  3855.  
  3856.     NetWare Lite defaults to disabling the IPX/SPX and diagnostic capabilities of IPXODI.   This makes it impossible for IPX/SPX, NetBIOS, or diagnostic applications to run.
  3857.  
  3858. SOLUTION    
  3859.  
  3860.     Do not use /A when loading IPXODI.
  3861.  
  3862.  
  3863.  
  3864.  
  3865. FYI:    Print Server Printer Status Codes
  3866.                                      FYI
  3867.  
  3868. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3869.  
  3870.           TITLE:    Print Server Printer Status Codes
  3871.    DOCUMENT ID#:    FYI.A.3373
  3872.            DATE:    10JUL92
  3873.         PRODUCT:    NetWare C Interface DOS
  3874. PRODUCT VERSION:    1.20
  3875.      SUPERSEDES:    NA
  3876.  
  3877.        SYMPTOM:    NA
  3878.  
  3879.  
  3880. ISSUE/PROBLEM    
  3881.  
  3882.     The NetWare C Interface for DOS does not document the meaning of the values of the status byte returned by PSGetPrinterStatus().
  3883.  
  3884. SOLUTION    
  3885.  
  3886.     WAITING_FOR_JOB:    Printer is available and ready for a print job.
  3887.  
  3888.     WAITING_FOR_FORM:    Printer is currently waiting for a new form to be mounted.
  3889.  
  3890.     PRINTING_JOB:        Printer is currently printing a print job.
  3891.  
  3892.     PAUSED:            Printer has been paused and will continue to print the active job when started.
  3893.  
  3894.     STOPPED:            Printer has been stopped and the current job aborted.  When the printer is started it will begin to look for another job to print.
  3895.  
  3896.     MARK_EJECT:         Someone has paused or stopped the printer and sent a mark top of form or a page eject.  The print is in the state of executing the request.
  3897.  
  3898.     READY_TO_GO_DOWN:     Printer has finished printing any currently active job and is ready to go down.
  3899.  
  3900.     NOT_CONNECTED:     Printer is not currently connected to the print server.
  3901.  
  3902.     PRIVATE:             A remote printer is not currently available as a network printer.  This occurs when a command is sent to the print server telling it to release the printer.
  3903.  
  3904.  
  3905.  
  3906.  
  3907. FYI:    Determining the File Size of a Deleted File
  3908.                                      FYI
  3909.  
  3910. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3911.  
  3912.           TITLE:    Determining the File Size of a Deleted File
  3913.    DOCUMENT ID#:    FYI.A.3372
  3914.            DATE:    10JUL92
  3915.         PRODUCT:    NetWare C Interface DOS
  3916. PRODUCT VERSION:    1.20
  3917.      SUPERSEDES:    NA
  3918.  
  3919.        SYMPTOM:    NA
  3920.  
  3921.  
  3922. ISSUE/PROBLEM    
  3923.  
  3924.     How can the file size of a deleted file be determined?
  3925.  
  3926. SOLUTION    
  3927.  
  3928.     The ScanSalvagableFiles() function returns the size of a deleted file in the dataForkSize field.  Although this is documented as being for the Macintosh, the size of all files is returned in this field.
  3929.  
  3930.  
  3931.  
  3932.  
  3933. FYI:    Increasing the Maximum NetBIOS Names for a Workstation
  3934.                                      FYI
  3935.  
  3936. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3937.  
  3938.           TITLE:    Increasing the Maximum NetBIOS Names for a Workstation
  3939.    DOCUMENT ID#:    FYI.A.3371
  3940.            DATE:    10JUL92
  3941.         PRODUCT:    NetWare System Calls
  3942. PRODUCT VERSION:    1.00
  3943.      SUPERSEDES:    NA
  3944.  
  3945.        SYMPTOM:    NA
  3946.  
  3947.  
  3948. ISSUE/PROBLEM    
  3949.  
  3950.     How can the maximum number of NetBIOS names for a workstation be increased?
  3951.  
  3952. SOLUTION    
  3953.  
  3954.     This can be accomplished by using an undocumented SHELL/NET.CFG parameter.  The syntax is outlined below:
  3955.  
  3956.         NETBIOS NAMES=<Number>
  3957.  
  3958.     A maximum of 250 names per workstation are possible.
  3959.  
  3960.  
  3961.  
  3962.  
  3963. FYI:    Diagnostic Functions Not Returning All Data
  3964.                                      FYI
  3965.  
  3966. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  3967.  
  3968.           TITLE:    Diagnostic Functions Not Returning All Data
  3969.    DOCUMENT ID#:    FYI.A.3370
  3970.            DATE:    10JUL92
  3971.         PRODUCT:    NetWare C for Windows
  3972. PRODUCT VERSION:    1.30
  3973.      SUPERSEDES:    NA
  3974.  
  3975.        SYMPTOM:    Diagnostic returned structure not completely filled.
  3976.  
  3977.  
  3978. ISSUE/PROBLEM    
  3979.  
  3980.     All diagnostic functions that use the NWmemmove function in the NWSTRING.C module of the NetWare C Interface - Windows SDK, v1.30, will not return all of the data expected in the structure.  An example of this problem occurs when calling GetAllKnownNetworks().
  3981.  
  3982. SOLUTION    
  3983.  
  3984.     Make the source code changes outlined below and recreate the DLL with the OBJs and MAKE file provided with the SDK.
  3985.  
  3986.     ┌────────────────────────────────────────────────────────────┐
  3987.     │ ~                                                          │
  3988.     │ ~                                                          │
  3989.     │ ~                                                          │
  3990.     │ void FAR * FAR PASCAL NWMemmove( char far *toBlock,        │
  3991.     │                                  char far *fromBlock,      │
  3992.     │                                  unsigned int len )        │
  3993.     │    {                                                       │
  3994.     │    WORD  i;   // This was a BYTE.                          │
  3995.     │                                                            │
  3996.     │    if( fromBlock == toBlock )                              │
  3997.     │       {                                                    │
  3998.     │       return( toBlock );                                   │
  3999.     │       }                                                    │
  4000.     │    for( i = 0; i < len; i++ )  // len was cast to a BYTE   │
  4001.     │      *(toBlock + i) = *(fromBlock + i);                    │
  4002.     │                                                            │
  4003.     │    return( toBlock );                                      │
  4004.     │    }                                                       │
  4005.     │ ~                                                          │
  4006.     │ ~                                                          │
  4007.     │ ~                                                          │
  4008.     └────────────────────────────────────────────────────────────┘
  4009.  
  4010.     The two changes outlined above will resolve the problem and all of the data expected will be updated in the structures.
  4011.  
  4012.  
  4013.  
  4014.  
  4015. FYI:    Documentation Error in NetWare SQL Manual
  4016.                                      FYI
  4017.  
  4018. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4019.  
  4020.           TITLE:    Documentation Error in NetWare SQL Manual
  4021.    DOCUMENT ID#:    FYI.A.1758
  4022.            DATE:    09JUL92
  4023.         PRODUCT:    NetWare SQL
  4024. PRODUCT VERSION:    3.0
  4025.      SUPERSEDES:    NA
  4026.  
  4027.        SYMPTOM:    NA
  4028.  
  4029.  
  4030. ISSUE/PROBLEM    
  4031.  
  4032.     The NetWare SQL 3.0 Installation and Operation manual incorrectly describes the use of the XQLLOCAL.DLL file for OS/2 workstations.  On page 2-44 of the manual, it states:
  4033.  
  4034.     ┌───────────────────────────────────────────────────────────────────────┐
  4035.     │"XQLLOCAL.DLL provides support for data that resides on the local hard │
  4036.     │ drive.  An application at an OS/2 workstation cannot access local     │
  4037.     │ files using the requester alone."                                     │
  4038.     └───────────────────────────────────────────────────────────────────────┘
  4039.  
  4040. SOLUTION    
  4041.  
  4042.     This description is incorrect.  A NetWare SQL application cannot access files located on a local hard drive.  Since NetWare SQL utilizes NetWare Btrieve on the file server for all file I/O, the data files must be located on the file server in order for NetWare Btrieve to access them.
  4043.  
  4044.     XQLLOCAL.DLL provides local processing for a small set of NetWare SQL data conversion functions that can be performed either at the client or the server.  Having this DLL available allows these functions to be performed at the client, improving the performance of this processing.
  4045.  
  4046.     If XQLLOCAL.DLL is not available, the data conversion requests will instead be performed at the server.  The application will not see a difference in functionality, only performance.  This is similar to the difference between the two NetWare SQL requesters available for DOS clients: NSREQ.EXE and NSREQS.EXE.
  4047.  
  4048.  
  4049.  
  4050.  
  4051. FYI:    Calling the Btrieve Version Operation from an NLM
  4052.                                      FYI
  4053.  
  4054. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4055.  
  4056.           TITLE:    Calling the Btrieve Version Operation from an NLM
  4057.    DOCUMENT ID#:    FYI.A.1045
  4058.            DATE:    09JUL92
  4059.         PRODUCT:    NetWare Btrieve
  4060. PRODUCT VERSION:    5.x
  4061.      SUPERSEDES:    NA
  4062.  
  4063.        SYMPTOM:    Status 1 returned to NLM making Version call to Btrieve.
  4064.  
  4065.  
  4066. ISSUE/PROBLEM    
  4067.  
  4068.     When issuing a version operation (op code 26) to the Btrieve NLM from another NLM, the results vary depending on the version of Btrieve that is loaded.  A version call against Btrieve v5.15 returns the following
  4069.  
  4070.         a status 1 - Invalid Operation.
  4071.  
  4072.     The same call against Btrieve v6.0 succeeds.  This operation was necessary for NetWare SQL 3.0 so it could determine what version of Btrieve was loaded.
  4073.  
  4074. SOLUTION    
  4075.  
  4076.     Do not use the version operation from an NLM calling the 5.x Btrieve NLM. It can only be used with the 6.x version of the Btrieve NLM.
  4077.  
  4078.     SPECIAL NOTE:  The version operation when performed from a workstation will return the version of the requester that is loaded on that workstation.  The operation is handled locally and not passed to the server at all.
  4079.  
  4080.  
  4081.  
  4082.  
  4083. FYI:    Local Btrieve for Windows Default Page Size
  4084.                                      FYI
  4085.  
  4086. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4087.  
  4088.           TITLE:    Local Btrieve for Windows Default Page Size
  4089.    DOCUMENT ID#:    FYI.A.1044
  4090.            DATE:    09JUL92
  4091.         PRODUCT:    Btrieve for Windows
  4092. PRODUCT VERSION:    5.10
  4093.      SUPERSEDES:    NA
  4094.  
  4095.        SYMPTOM:    Status 24 (Page Size Error)
  4096.  
  4097.  
  4098. ISSUE/PROBLEM    
  4099.  
  4100.     If the Btrieve for Windows (client version) DLL is initialized without specifying a "/P:" parameter (maximum page size), a default value of 512 will be used.  This will result in a status 24 (Page Size Error) when attempting to open a Btrieve data file created with a larger page size.  Other local Btrieve engines (DOS and OS/2) use a default page size of 1024.
  4101.  
  4102. SOLUTION    
  4103.  
  4104.     Initialize Btrieve with the appropriate "/P:" parameter according to the data files you intend to access.  This can be done by setting the options= parameter in the WIN.INI file, or by calling the WBTRVINIT() function from a Windows application.
  4105.  
  4106.  
  4107.  
  4108.  
  4109. FYI:    Extended Attributes Return Values Not Documented
  4110.                                      FYI
  4111.  
  4112. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4113.  
  4114.           TITLE:    Extended Attributes Return Values Not Documented
  4115.    DOCUMENT ID#:    FYI.A.1666
  4116.            DATE:    08JUL92
  4117.         PRODUCT:    Network C for NLMs
  4118. PRODUCT VERSION:    SDKb
  4119.      SUPERSEDES:    NA
  4120.  
  4121.        SYMPTOM:    NA
  4122.  
  4123.  
  4124. ISSUE/PROBLEM    
  4125.  
  4126.     The advanced services functions which deal with extended attributes (EnumerateEA(), for example) can return values that are not documented.
  4127.  
  4128. SOLUTION    
  4129.  
  4130.     Possible returned values are as follows:
  4131.  
  4132.                    ┌────────────────────────────────┬─────┐
  4133.                    │           FUNCTION             │VALUE│
  4134.                    ├────────────────────────────────┼─────┤
  4135.                    │ ERR_MISSING_EA_KEY             │ 200 │
  4136.                    ├────────────────────────────────┼─────┤
  4137.                    │ ERR_EA_NOT_FOUND               │ 201 │
  4138.                    ├────────────────────────────────┼─────┤
  4139.                    │ ERR_INVALID_EA_HANDLE_TYPE     │ 202 │
  4140.                    ├────────────────────────────────┼─────┤
  4141.                    │ ERR_EA_NO_KEY_NO_DATA          │ 203 │
  4142.                    ├────────────────────────────────┼─────┤
  4143.                    │ ERR_EA_NUMBER_MISMATCH         │ 204 │
  4144.                    ├────────────────────────────────┼─────┤
  4145.                    │ ERR_EXTENT_NUMBER_OUT_OF_RANGE │ 205 │
  4146.                    ├────────────────────────────────┼─────┤
  4147.                    │ ERR_EA_BAD_DIR_NUM             │ 206 │
  4148.                    ├────────────────────────────────┼─────┤
  4149.                    │ ERR_INVALID_EA_HANDLE          │ 207 │
  4150.                    ├────────────────────────────────┼─────┤
  4151.                    │ ERR_EA_POSITION_OUT_OF_RANGE   │ 208 │
  4152.                    ├────────────────────────────────┼─────┤
  4153.                    │ ERR_EA_ACCESS_DENIED           │ 209 │
  4154.                    ├────────────────────────────────┼─────┤
  4155.                    │ ERR_DATA_PAGE_ODD_SIZE         │ 210 │
  4156.                    ├────────────────────────────────┼─────┤
  4157.                    │ ERR_EA_VOLUME_NOT_MOUNTED      │ 211 │
  4158.                    ├────────────────────────────────┼─────┤
  4159.                    │ ERR_BAD_PAGE_BOUNDARY          │ 212 │
  4160.                    ├────────────────────────────────┼─────┤
  4161.                    │ ERR_INSPECT_FAILURE            │ 213 │
  4162.                    ├────────────────────────────────┼─────┤
  4163.                    │ ERR_EA_ALREADY_CLAIMED         │ 214 │
  4164.                    ├────────────────────────────────┼─────┤
  4165.                    │ ERR_ODD_BUFFER_SIZE            │ 215 │
  4166.                    ├────────────────────────────────┼─────┤
  4167.                    │ ERR_NO_SCORECARDS              │ 216 │
  4168.                    ├────────────────────────────────┼─────┤
  4169.                    │ ERR_BAD_EDS_SIGNATURE          │ 217 │
  4170.                    ├────────────────────────────────┼─────┤
  4171.                    │ ERR_EA_SPACE_LIMIT             │ 218 │
  4172.                    ├────────────────────────────────┼─────┤
  4173.                    │ ERR_EA_KEY_CORRUPT             │ 219 │
  4174.                    ├────────────────────────────────┼─────┤
  4175.                    │ ERR_EA_KEY_LIMIT               │ 220 │
  4176.                    ├────────────────────────────────┼─────┤
  4177.                    │ ERR_TALLY_CORRUPT              │ 221 │
  4178.                    └────────────────────────────────┴─────┘
  4179.  
  4180.  
  4181.  
  4182. FYI:    Using Multiple VIEW.DDFs for a Set of Data Dictionary Files
  4183.                                      FYI
  4184.  
  4185. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4186.  
  4187.           TITLE:    Using Multiple VIEW.DDFs for a Set of Data Dictionary Files
  4188.    DOCUMENT ID#:    FYI.A.1120
  4189.            DATE:    08JUL92
  4190.         PRODUCT:    NetWare SQL
  4191. PRODUCT VERSION:    3.0
  4192.      SUPERSEDES:    NA
  4193.  
  4194.        SYMPTOM:    NA
  4195.  
  4196.  
  4197. ISSUE/PROBLEM    
  4198.  
  4199.     Can more than one VIEW.DDF file exist for a set of data dictionary files? In the past, some users have set up multiple VIEW.DDF files for a set of DDF files, so that each user could have their own views stored exclusive of other users.
  4200.  
  4201. SOLUTION    
  4202.  
  4203.     With the introduction of named database support in NetWare SQL 3.0, the possibility of creating multiple VIEW.DDF files for a set of dictionaries is no longer an option.  When a named database is created using NDBSETUP, there is only one path that can be specified for a set of DDF files.  Therefore, it is not possible to specify multiple paths for different VIEW.DDF files relating to the field, file, and index DDFs for the named database.
  4204.  
  4205.  
  4206.  
  4207.  
  4208. FYI:    How to Determine If TCPIP.EXE Is Loaded
  4209.                                      FYI
  4210.  
  4211. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4212.  
  4213.           TITLE:    How to Determine If TCPIP.EXE Is Loaded
  4214.    DOCUMENT ID#:    FYI.A.3158
  4215.            DATE:    06JUL92
  4216.         PRODUCT:    LWP for DOS
  4217. PRODUCT VERSION:    4.0
  4218.      SUPERSEDES:    NA
  4219.  
  4220.        SYMPTOM:    NA
  4221.  
  4222.  
  4223. ISSUE/PROBLEM    
  4224.  
  4225.     Need to determine if TCPIP.EXE is loaded.
  4226.  
  4227. SOLUTION    
  4228.  
  4229.     Use INT 2F function 1740h.  If AL = FF on return, TCPIP.EXE is loaded.
  4230.  
  4231.  
  4232.  
  4233.  
  4234. FYI:    Cannot Register a Unique matherr() Handler with CLIB
  4235.                                      FYI
  4236.  
  4237. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4238.  
  4239.           TITLE:    Cannot Register a Unique matherr() Handler with CLIB
  4240.    DOCUMENT ID#:    FYI.A.3157
  4241.            DATE:    06JUL92
  4242.         PRODUCT:    Network C for NLMs
  4243. PRODUCT VERSION:    SDKc
  4244.      SUPERSEDES:    NA
  4245.  
  4246.        SYMPTOM:    Messages overwriting screen output during math error
  4247.  
  4248.  
  4249. ISSUE/PROBLEM    
  4250.  
  4251.     There does not seem to be a way to have a matherr() API defined for an NLM.
  4252.  
  4253. SOLUTION    
  4254.  
  4255.     According to the documentation, a matherr() function can simply be included into an NLM, and when any type of math error occurs, MATHLIBx will call the matherr() function.  However, this is not exactly the way it works.  With CLIB versions previous to 3.11b, there was not a way to register a matherr() API.  Starting with version 3.11b, a function RegisterMatherrHandler() will allow an NLM to register its own matherr() routine.  This can be done on a per-NLM basis.
  4256.  
  4257.     The routine should behave as the documentation describes.  Calling RegisterMatherrHandler() with a NULL parameter will unregister a previously registered matherr handler.
  4258.  
  4259.  
  4260.  
  4261.  
  4262. FYI:    xUpdall Status 207 with NetWare v2.11
  4263.                                      FYI
  4264.  
  4265. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4266.  
  4267.           TITLE:    xUpdall Status 207 with NetWare v2.11
  4268.    DOCUMENT ID#:    FYI.A.2033
  4269.            DATE:    06JUL92
  4270.         PRODUCT:    NetWare SQL
  4271. PRODUCT VERSION:    2.11
  4272.      SUPERSEDES:    NA
  4273.  
  4274.        SYMPTOM:    Status 207 on xUpdall function call
  4275.  
  4276.  
  4277. ISSUE/PROBLEM    
  4278.  
  4279.     NetWare SQL version 2.11 will return a status 207 (field does not exist in the dictionary) if an xUpdall function is attempted on more than one field in a single call.  This problem is fixed in both NetWare SQL version 3.0 and XQL version 2.11.
  4280.  
  4281. SOLUTION    
  4282.  
  4283.     Use NetWare SQL version 3.0.
  4284.  
  4285.  
  4286.  
  4287.  
  4288. FYI:    TTS and NetWare Btrieve
  4289.                                      FYI
  4290.  
  4291. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4292.  
  4293.           TITLE:    TTS and NetWare Btrieve
  4294.    DOCUMENT ID#:    FYI.A.2031
  4295.            DATE:    06JUL92
  4296.         PRODUCT:    NetWare Btrieve NLM
  4297. PRODUCT VERSION:    5.15
  4298.      SUPERSEDES:    NA
  4299.  
  4300.        SYMPTOM:    Status 15 inside a Btrieve transaction
  4301.  
  4302.  
  4303. ISSUE/PROBLEM    
  4304.  
  4305.     If TTS is disabled on the server and the Btrieve data files to be accessed with the Btrieve NLM version 5.15 are flagged transactional (T), a status 15 (preimage I/O error) will be returned on all file updates (meaning insert, update or delete operations) to the data files within a Btrieve Begin (19) and End (20) transaction.  The status 15 will not be returned in two cases:
  4306.  
  4307.     1.    The update is performed outside of a Btrieve transaction, or
  4308.  
  4309.     2.    Before the update is performed inside of a Btrieve transaction, a successful update has occurred outside of a transaction with the current instance of Brequest.  This case is reinitialized once Brequest is unloaded and loaded again on the workstation.
  4310.  
  4311.     In all cases, even when the 15 is not returned, no preimaging is being done for the files if TTS is not enabled at the server.
  4312.  
  4313. SOLUTION    
  4314.  
  4315.     If Btrieve data files are flagged transactional, TTS must be enabled at the server for preimaging to succeed.  If TTS is disabled, flag all Btrieve files non-transactional (-T).
  4316.  
  4317.  
  4318.  
  4319.  
  4320. FYI:    New Parameters for SERSERV.NLM
  4321.                                      FYI
  4322.  
  4323. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4324.  
  4325.           TITLE:    New Parameters for SERSERV.NLM
  4326.    DOCUMENT ID#:    FYI.A.4117
  4327.            DATE:    02JUL92
  4328.         PRODUCT:    Network C for NLMs
  4329. PRODUCT VERSION:    SDKC
  4330.      SUPERSEDES:    NA
  4331.  
  4332.         SYMPTOM:    Problems with COM2
  4333.  
  4334.  
  4335. ISSUE/PROBLEM
  4336.  
  4337.     This follows an earlier FYI on SERSERV.NLM and a problem with COM2.  The fixed SERSERV.NLM, however, has new parameters that are required when loading the NLM.  The board number as well as the port number must be specified; for example:
  4338.  
  4339.     load serserv b[board_number] p[port_number][.max_baud]
  4340.  
  4341. SOLUTION
  4342.  
  4343.     NA
  4344.  
  4345.  
  4346.  
  4347.  
  4348. FYI:    xRecall Documentation Error
  4349.                                      FYI
  4350.  
  4351. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4352.  
  4353.           TITLE:    xRecall Documentation Error
  4354.    DOCUMENT ID#:    FYI.A.2032
  4355.            DATE:    02JUL92
  4356.         PRODUCT:    NetWare SQL
  4357. PRODUCT VERSION:    3.00
  4358.      SUPERSEDES:    NA
  4359.  
  4360.        SYMPTOM:    NA
  4361.  
  4362.  
  4363. ISSUE/PROBLEM    
  4364.  
  4365.     There is an error on page 3-191 in the Application Programming Interface manual of the NetWare SQL 3.0 documentation set.  For the xRecall function, iOpenMode is specified as being passed by reference.  It should be corrected to specify iOpenMode as being passed by value.
  4366.  
  4367. SOLUTION    
  4368.  
  4369.     NA
  4370.  
  4371.  
  4372.  
  4373.  
  4374. FYI:    Status 2001 with Btrieve for Windows Requester
  4375.                                      FYI
  4376.  
  4377. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4378.  
  4379.           TITLE:    Status 2001 with Btrieve for Windows Requester
  4380.    DOCUMENT ID#:    FYI.A.2030
  4381.            DATE:    02JUL92
  4382.         PRODUCT:    NetWare Btrieve NLM
  4383. PRODUCT VERSION:    5.15
  4384.      SUPERSEDES:    NA
  4385.  
  4386.        SYMPTOM:    Status 2001 with WBTRCALL Btrieve requester
  4387.  
  4388.  
  4389. ISSUE/PROBLEM    
  4390.  
  4391.     With the Windows Btrieve requester, WBTRCALL.DLL v5.17a (11712 6-28-91), a Status 2001 (insufficient memory) will be returned on any Btrieve call issued after a WBTRVSTOP call.
  4392.  
  4393.     The 2001 will occur only during the duration of a single task or program.  This means that if an application that makes Btrieve calls is running and this application, OR ANY OTHER application calls WBTRVSTOP, a 2001 will be returned on all successive Btrieve calls in all Btrieve applications that are running, UNTIL the applications are restarted.
  4394.  
  4395. SOLUTION    
  4396.  
  4397.     This problem is fixed in the 6.0 version of WBTRCALL.DLL shipping with NetWare SQL 3.0.  When using the 6.0 version of WBTRCALL.DLL, the file WBTRVRES.DLL is also needed.  It is required for use when using version 6.0 of WBTRCALL.
  4398.  
  4399.  
  4400.  
  4401.  
  4402. FYI:    Visual Basic and Status 2103 or 20
  4403.                                      FYI
  4404.  
  4405. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4406.  
  4407.           TITLE:    Visual Basic and Status 2103 or 20
  4408.    DOCUMENT ID#:    FYI.A.2029
  4409.            DATE:    02JUL92
  4410.         PRODUCT:    NetWare Btrieve NLM
  4411. PRODUCT VERSION:    5.15
  4412.      SUPERSEDES:    NA
  4413.  
  4414.        SYMPTOM:    Status 20 and Status 2103 with Visual Basic
  4415.  
  4416.  
  4417. ISSUE/PROBLEM    
  4418.  
  4419.     When using the Btrieve or NetWare SQL requesters in a program in the Visual Basic interactive environment, status 20 (Btrieve not loaded) or 2103 (NetWare SQL not active) may be returned on calls to Btrieve or NetWare SQL (respectively).
  4420.  
  4421. SOLUTION    
  4422.  
  4423.     A workaround for this problem with Visual Basic is to compile the application and run it outside of the Visual Basic environment.  The status 20 or 2103 will not be returned when running outside of the environment.
  4424.  
  4425.  
  4426.  
  4427.  
  4428. FYI:    IPXODI Options Affect SPX and Diagnostics
  4429.                                      FYI
  4430.  
  4431. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4432.  
  4433.           TITLE:    IPXODI Options Affect SPX and Diagnostics
  4434.    DOCUMENT ID#:    FYI.A.1665
  4435.            DATE:    02JUL92
  4436.         PRODUCT:    NetWare C Interface DOS
  4437. PRODUCT VERSION:    1.2
  4438.      SUPERSEDES:    NA
  4439.  
  4440.        SYMPTOM:    NA
  4441.  
  4442.  
  4443. ISSUE/PROBLEM    
  4444.  
  4445.     What does a return code of 0xFE (254) from BeginDiagnostics() or 0 from SPXInitialize() mean?
  4446.  
  4447. SOLUTION    
  4448.  
  4449.     IPXODI allows certain options to be specified when it is loaded that affect what protocol support is installed.  Specifically, the D option tells IPXODI NOT to load diagnostics support.
  4450.  
  4451.     The A option tells IPXODI not to load diagnostics support or SPX support.  If diagnostics support is not loaded, BeginDiagnostics() will return 0xFE (254).  If SPX support is not loaded, SPXInitialize() will return a 0.
  4452.  
  4453.  
  4454.  
  4455.  
  4456. FYI:    Setting the Machine Name
  4457.                                      FYI
  4458.  
  4459. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4460.  
  4461.           TITLE:    Setting the Machine Name
  4462.    DOCUMENT ID#:    FYI.A.1664
  4463.            DATE:    01JUL92
  4464.         PRODUCT:    NetWare System Calls
  4465. PRODUCT VERSION:    1.0
  4466.      SUPERSEDES:    NA
  4467.  
  4468.        SYMPTOM:    NA
  4469.  
  4470.  
  4471. ISSUE/PROBLEM    
  4472.  
  4473.     The machine name can be obtained through DOS interrupt 21h, service 5Eh, function 0.  How can an application set the machine name?
  4474.  
  4475. SOLUTION    
  4476.  
  4477.     The DOS GetMachineName function is available to workstations running in most network environments and is commonly used to give a NETBIOS client a unique name.  There is an undocumented service, 01h to this same function that allows a calling application to set the machine name.  Register setup is as follows:
  4478.  
  4479.     ┌───────────────────────────────────────────────────────────────────┐
  4480.     │Entry:                                                             │
  4481.     │   AX = 5E01h                                                      │
  4482.     │   CH = 1            (0 = make it invalid, non-0 means define it)  │
  4483.     │   CL = name number  (0 for first name)                            │
  4484.     │   DS:DX points to the string containing the machine name          │
  4485.     │                     (15 characters, blank padded + NULL).         │
  4486.      │                                                                   │
  4487.     │Return:                                                            │
  4488.     │   n/a                                                             │
  4489.     └───────────────────────────────────────────────────────────────────┘
  4490.  
  4491.     DOS does not pad the end of the string with blanks, so the application is responsible for maintaining the name correctly.  The name should always be 16 characters long including the NULL terminator.  Under DOS 5.0, at least, the CX register does not seem to really make a difference.
  4492.  
  4493.     Another way, under NetWare, to set the machine name is in the login script, the command as shown below:
  4494.  
  4495.       NAME="UNIQUE NAME"
  4496.  
  4497.     will set the machine name to "UNIQUE NAME".  Login script variables can go inside the quotes to help produce a more unique name:
  4498.  
  4499.       NAME="%P_STATION"
  4500.  
  4501.     will set the machine name to the physical node address of the workstation, with leading zeros.
  4502.  
  4503.  
  4504.  
  4505.  
  4506. FYI:    Using Brequest in Multiple Desqview Sessions
  4507.                                      FYI
  4508.  
  4509. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4510.  
  4511.           TITLE:    Using Brequest in Multiple Desqview Sessions
  4512.    DOCUMENT ID#:    FYI.A.1757
  4513.            DATE:    30JUN92
  4514.         PRODUCT:    NetWare Btrieve NLM
  4515. PRODUCT VERSION:    5.x
  4516.      SUPERSEDES:    NA
  4517.  
  4518.         SYMPTOM:    Btrieve Status 79 - Programming Error
  4519.  
  4520.  
  4521. ISSUE/PROBLEM
  4522.  
  4523.     With Desqview version 2.40, multiple sessions running Btrieve applications using the NetWare Btrieve requester (Brequest.exe) could cause a status 79 - "Programming Error" to be returned.
  4524.  
  4525. SOLUTION
  4526.  
  4527.     Desqview version 2.40 has a configuration option called "Network Buffers". Increasing this parameter resolves the problem.
  4528.  
  4529.     From a Desqview window, run the program DVSETUP.  Select the ADVANCED setup procedure.  From the advanced menu, select the Network option.  One of the network options is called Network Buffers.  The default value for this parameter is 8.  Quarterdeck, which is the company that makes Desqview, suggested raising this value to 16, which resolved the Brequest problem.
  4530.  
  4531.  
  4532.  
  4533.  
  4534. FYI:    Logging Into a Named Database With XQLI
  4535.                                      FYI
  4536.  
  4537. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4538.  
  4539.           TITLE:    Logging Into a Named Database With XQLI
  4540.    DOCUMENT ID#:    FYI.A.1043
  4541.            DATE:    30JUN92
  4542.         PRODUCT:    NetWare SQL
  4543. PRODUCT VERSION:    3.0
  4544.      SUPERSEDES:    NA
  4545.  
  4546.         SYMPTOM:    Using /D load parameter
  4547.  
  4548. ISSUE/PROBLEM
  4549.  
  4550.     How can a named database be used when logging into XQLI?
  4551.  
  4552. SOLUTION
  4553.  
  4554.     In order to use a named database when logging into NetWare SQL with the XQLI utility, the /D load parameter can be used.  For example, to use XQLI to access the named database "test", enter the following command:
  4555.  
  4556.            XQLI /D:@test
  4557.  
  4558.     In addition, a named database can be configured in the OPTIONS menu once XQLI is loaded.  After selecting OPTIONS, select LOGIN, and then DICTIONARY and specify @databasename as the dictionary path.
  4559.  
  4560.     Finally, the XQLIDD environment variable can also be used to specify a named database.  Simply set it to @databasename before invoking XQLI.
  4561.  
  4562.  
  4563.  
  4564.  
  4565. FYI:    NetWare Btrieve and 3-Com 3C501 Ethernet Cards
  4566.                                      FYI
  4567.  
  4568. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4569.  
  4570.           TITLE:    NetWare Btrieve and 3-Com 3C501 Ethernet Cards
  4571.    DOCUMENT ID#:    FYI.A.1042
  4572.            DATE:    30JUN92
  4573.         PRODUCT:    NetWare Btrieve NLM
  4574. PRODUCT VERSION:    5.15
  4575.      SUPERSEDES:    NA
  4576.  
  4577.         SYMPTOM:    Btrieve applications hang
  4578.  
  4579.  
  4580. ISSUE/PROBLEM
  4581.  
  4582.     The user reported he was using a clone 386/20 as a NetWare v3.11 server, and then upgraded his server to be a NetWare Certified ALR 486/33 server.
  4583.     As a result, workstations with the older and slower 3C501 cards could no longer run their Btrieve applcations.  They appeared to hang very frequently; users were continually having to reboot the workstations with these cards.
  4584.  
  4585.     Prior to upgrading the server hardware to the faster processor, everything ran fine.
  4586.  
  4587. SOLUTION
  4588.  
  4589.     The 3C501 card is very slow and cannot handle the increased output from a faster server.  Upgrading the older workstations that were running 3C501 cards to more recent ethernet cards resolved the problem.
  4590.  
  4591.     For more information, refer to FYI.P.5862 in the NSE.
  4592.  
  4593.  
  4594.  
  4595.  
  4596. FYI:    Status 100 with Btrieve 6.0
  4597.                                      FYI
  4598.  
  4599. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4600.  
  4601.           TITLE:    Status 100 with Btrieve 6.0
  4602.    DOCUMENT ID#:    FYI.A.2424
  4603.            DATE:    29JUN92
  4604.         PRODUCT:    NetWare Btrieve NLM
  4605. PRODUCT VERSION:    6.0
  4606.      SUPERSEDES:    NA
  4607.  
  4608.         SYMPTOM:    NA
  4609.  
  4610.  
  4611. ISSUE/PROBLEM
  4612.  
  4613.     Status 100 "No Cache Buffers Available" when using the Btrieve NLM v6.0 is solved by increasing the Cache Allocation parameter under the Btrieve Configuration option of the NetWare SQL Setup Utility (NDBSETUP.NLM).
  4614.  
  4615.     The NetWare SQL Installation and Operation manual, page 2-34, states:
  4616.  
  4617.         "To achieve best performance, allocate a cache size equal to the sum of the sizes of the files you are using.  You cannot improve performance, and may waste memory, by specifying a value higher than you need."
  4618.  
  4619.  
  4620.     If a server has 2.0 GB worth of Btrieve data files, and only 64 MB of memory, then this formula is unrealistic.  In this case, what formula should be used?
  4621.  
  4622. SOLUTION
  4623.  
  4624.     The purpose of the above statement is to let users know that if they allocate a cache size more than the sum of the file sizes, this extra cache allocation will be useless.  The more memory given to Btrieve, the better Btrieve will perform, up until the cache size equals the sum of the file sizes.  However, if more memory is given to Btrieve, this memory is taken away from NetWare.
  4625.  
  4626.     If a server is ONLY running a Btrieve application, increasing the Cache Allocation will not generally interfere with NetWare's memory, and the performance of Btrieve should increase.  However, if the server is running a Btrieve application in addition to other applications that need NetWare's memory, then increasing the Cache Allocation parameter for the Btrieve NLM v6.0 may cause a decrease in performance for the non-Btrieve applications.
  4627.  
  4628.     There is no set formula for increasing or decreasing the Cache Allocation parameter.  In the case above, the best advice is to gradually increment the Cache Allocation by 1 MB at a time, and monitor the effects.  If there is less memory on the server, then use smaller increments.
  4629.  
  4630.  
  4631.  
  4632.  
  4633. FYI:    OS/2 2.0 and Btrieve for OS/2 (local)
  4634.                                      FYI
  4635.  
  4636. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4637.  
  4638.           TITLE:    OS/2 2.0 and Btrieve for OS/2 (local)
  4639.    DOCUMENT ID#:    FYI.A.2423
  4640.            DATE:    29JUN92
  4641.         PRODUCT:    Btrieve OS/2
  4642. PRODUCT VERSION:    5.10
  4643.      SUPERSEDES:    FYI.A.2420
  4644.  
  4645.         SYMPTOM:    NA
  4646.  
  4647.  
  4648. ISSUE/PROBLEM
  4649.  
  4650.     This FYI supersedes FYI.A.2420.
  4651.  
  4652.     Does the local Btrieve for OS/2 v5.10 BTRCALLS.DLL work under OS/2 v2.0?
  4653.  
  4654. SOLUTION
  4655.  
  4656.     Yes, however, OS2 v2.0 developers writing a 32-bit application or DLL to call the 16-bit BTRCALLS.DLL, will have to modify the interface slightly in order to alias the 32-bit pointer and integer parameters.  Macros are provided by the C/2 compiler to do this. Calling the 16-bit Btrieve for OS/2 v5.10 DLL is a simple matter of redoing the BTRCALL prototype.
  4657.  
  4658.     The current prototype for OS/2 v1.X is:
  4659.  
  4660.         extern int APIENTRY BTRCALL (USHORT, PSZ, PSZ, PUSHORT, PSZ, CHAR, UCHAR);
  4661.  
  4662.     The prototype for a 32-bit application or dll would be:
  4663.  
  4664.         extern SHORT APIENTRY16 BTRCALL (USHORT, UCHAR  _Seg16 *, UCHAR _Seg16 *, USHORT _Seg16 *, UCHAR _Seg16 *, CHAR, UCHAR);
  4665.  
  4666.     Everything else is handled by the compiler and linker.  This is done using the IBM C Set/2.
  4667.  
  4668.     Btrieve for OS/2 applications written for OS/2 v1.X will run fine in OS/2 v2.0.
  4669.  
  4670.     How do you write a 32 bit Btrieve application to run under OS/2 2.0 using 16 bit Btrcalls.dll?
  4671.  
  4672.     The following is a sample program that was compiled using IBM C SET/2 compiler.  It also contains codes to initialize Btrieve for OS/2.
  4673.  
  4674.          #include <stdio.h>
  4675.          #include <os2.h>
  4676.          #include <string.h>
  4677.  
  4678.          #define     B_Open       0
  4679.          #define     B_Close      1
  4680.          #define     B_GetFirst  12
  4681.  
  4682.          typedef CHAR BTR_CHAR;
  4683.          #pragma seg16(BTR_CHAR)
  4684.          #pragma linkage(btrcall, far16 pascal)
  4685.          #pragma linkage(btrvinit, far16 pascal)
  4686.  
  4687.          extern SHORT btrcall(short,char * _Seg16, char * _Seg16,
  4688.                               short * _Seg16, char * _Seg16, BYTE, CHAR);
  4689.  
  4690.          extern SHORT btrvinit(char * _Seg16);
  4691.  
  4692.          extern SHORT BTRINIT(CHAR *);
  4693.  
  4694.          extern SHORT BTRV(SHORT, CHAR *, CHAR *, SHORT *, CHAR *, SHORT);
  4695.  
  4696.      main()
  4697.      {
  4698.        char     databuf[512];
  4699.        SHORT    dblen = 0;
  4700.        SHORT    status;
  4701.        char     PosBlock[128];
  4702.        char     KeyBuffer[512];
  4703.  
  4704.        char     InitBuf[100];
  4705.  
  4706.        strcpy(InitBuf, "/p:4096 /m:40 ");
  4707.        status = BTRINIT(InitBuf);
  4708.        printf("status = %d\n", status);
  4709.  
  4710.        strcpy(KeyBuffer, "Test.btr ");
  4711.        status = BTRV(B_Open, PosBlock, databuf, &dblen, KeyBuffer, 1);
  4712.        printf("status = %d\n", status);
  4713.  
  4714.        dblen=sizeof(databuf);
  4715.        status = BTRV(B_GetFirst, PosBlock, databuf, &dblen, KeyBuffer, 0);
  4716.        printf("status = %d\n", status);
  4717.  
  4718.        status = BTRV(B_Close, PosBlock, databuf, &dblen, KeyBuffer, 1);
  4719.        printf("status = %d\n", status);
  4720.      }
  4721.  
  4722.  
  4723.     /*---------------------------------------------------------------------*/  /*              MicroSoft/IBM C interface to the                       */
  4724.     /*              Btrieve OS/2 dynamic link library                      */
  4725.  
  4726.      SHORT BTRV (SHORT operation, CHAR *posblock, CHAR *databuf,
  4727.                  SHORT *datalen, CHAR *keybuf, SHORT keynum)
  4728.      {
  4729.  
  4730.        BYTE keylen = 255;
  4731.        CHAR ckeynum = keynum;
  4732.        CHAR * _Seg16 posblock16, * _Seg16 databuf16, * _Seg16 keybuf16;
  4733.        SHORT * _Seg16 datalen16;
  4734.  
  4735.        posblock16 = posblock;
  4736.        databuf16  = databuf;
  4737.        datalen16  = datalen;
  4738.        keybuf16   = keybuf;
  4739.  
  4740.       return (btrcall (operation, posblock16, databuf16, datalen16, keybuf16,
  4741.                         keylen, ckeynum));
  4742.      }
  4743.  
  4744.      SHORT BTRINIT( CHAR *initbuf)
  4745.      {
  4746.       CHAR * _Seg16 initbuf16;
  4747.  
  4748.       initbuf16 = initbuf;
  4749.       return (btrvinit (initbuf16));
  4750.      }
  4751.  
  4752.  
  4753.  
  4754.  
  4755. FYI:    NetWare SQL 3.0's Macintosh Disk
  4756.                                      FYI
  4757.  
  4758. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4759.  
  4760.           TITLE:    NetWare SQL 3.0's Macintosh Disk
  4761.    DOCUMENT ID#:    FYI.A.1119
  4762.            DATE:    29JUN92
  4763.         PRODUCT:    NetWare SQL
  4764. PRODUCT VERSION:    3.0
  4765.      SUPERSEDES:    NA
  4766.  
  4767.         SYMPTOM:    Unable to install Macintosh Disk
  4768.  
  4769.  
  4770. ISSUE/PROBLEM
  4771.  
  4772.     The Macintosh disk that was shipped with NetWare SQL 3.0 is formatted as high density.  Macintosh/DAL users that do not have high density disk drives at their site will have a problem installing the files on this disk: DALCHECK and README.DAL.
  4773.  
  4774. SOLUTION
  4775.  
  4776.     Walnut Creek has made the contents of the disk available on the Applelink bulletin board (similar to NetWire, but for Mac users), as well as NetWire.
  4777.  
  4778.     Applelink is an ICON driven bulletin board.  To find the files uploaded by Novell (Walnut Creek), first select 'Third Parties', then 'Novell', then open the folder for NetWare for Macintosh.  Double click on DAL.PKG and it will automatically be decompressed for you.
  4779.  
  4780.     For those with access to NetWire, DAL.SIT is in data library 8.  This file is compressed with a utility called Stuffit (for Macs).  It must be downloaded to a Mac or to a file server that has Macintosh support.  If you try to download it to a DOS workstation, the file will be corrupted.
  4781.  
  4782.     The reference number assigned to this file is PTF-W-029, for those customers who do not have access to Applelink or NetWire.  These customers can call 800-NETWARE and request these files to be mailed on diskette.
  4783.  
  4784.  
  4785.  
  4786.  
  4787. FYI:    Using the /W Parameter in Xtrieve PLUS
  4788.                                      FYI
  4789.  
  4790. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4791.  
  4792.           TITLE:    Using the /W Parameter in Xtrieve PLUS
  4793.    DOCUMENT ID#:    FYI.A.1864
  4794.            DATE:    26JUN92
  4795.         PRODUCT:    Xtrieve PLUS
  4796. PRODUCT VERSION:    4.11
  4797.      SUPERSEDES:    NA
  4798.  
  4799.         SYMPTOM:    Using the /W Parameter in Xtrieve PLUS
  4800.  
  4801.  
  4802. ISSUE/PROBLEM
  4803.  
  4804.     If the message "Not enough fields defined for View" appears when trying to use Xtrieve to put fields in a view, it may be that Xtrieve's /w parameter is not set high enough.
  4805.  
  4806. SOLUTION
  4807.  
  4808.     Xtrieve's /w should be long enough to encompass the longest width of the view.  This width is determined by adding up the lengths required to display the data for each field in the view.
  4809.  
  4810.     The length required by each field is determined by either: the length of the field OR the length of the heading for the field.  The larger of these should be used to calculate the total width of the view.
  4811.  
  4812.     Consequently, if you had 5, 10 byte string fields but the name of the fields were:
  4813.  
  4814.          FIELD ONE AAAAAAAAA
  4815.          FIELD TWO AAAAAAAAA
  4816.          FIELD THREE AAAAAAA
  4817.          FIELD FOUR AAAAAAAA
  4818.          FIELD FIVE AAAAAAAA
  4819.  
  4820.     The /w would have to be 5 (number of fields) * 20 (length of the heading). The length of the heading would be used because it is actually wider than the field is.
  4821.  
  4822.  
  4823.  
  4824.  
  4825. FYI:    Last Login Date and Time in MISC_LOGIN_INFO and LOGIN_CONTROL
  4826.                                      FYI
  4827.  
  4828. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4829.  
  4830.           TITLE:    Last Login Date and Time in MISC_LOGIN_INFO and LOGIN_CONTROL
  4831.    DOCUMENT ID#:    FYI.A.1323
  4832.            DATE:    26JUN92
  4833.         PRODUCT:    NetWare C Interface DOS
  4834. PRODUCT VERSION:    1.2
  4835.      SUPERSEDES:    NA
  4836.  
  4837.         SYMPTOM:    Incorrect Last Login Date And Time in MISC_LOGIN_INFO
  4838.  
  4839. ISSUE/PROBLEM
  4840.  
  4841.     The MISC_LOGIN_INFO bindery object property was being used to check for the object's last login date and time.  Upon investigation, it was discovered that the information returned by this property did not coincide with the last login date and time returned by SYSCON's Other Information screen.  The MISC_LOGIN_INFO property contained a time LATER than SYSCON's information.
  4842.  
  4843. SOLUTION
  4844.  
  4845.     After further study, it was discovered that SYSCON was retrieving its information from a different bindery object property known as the LOGIN_CONTROL property.  The MISC_LOGIN_INFO should not be used.
  4846.  
  4847.  
  4848.  
  4849.  
  4850. FYI:    Retrieving a NetWare Volume Serial Number
  4851.                                      FYI
  4852.  
  4853. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4854.  
  4855.           TITLE:    Retrieving a NetWare Volume Serial Number
  4856.    DOCUMENT ID#:    FYI.A.1322
  4857.            DATE:    26JUN92
  4858.         PRODUCT:    NetWare System Calls
  4859. PRODUCT VERSION:    1.00
  4860.      SUPERSEDES:    NA
  4861.  
  4862.         SYMPTOM:    Retrieving a NetWare Volume Serial Number
  4863.  
  4864.  
  4865. ISSUE/PROBLEM
  4866.  
  4867.     Beginning with DOS v4.x, volume serial numbers were introduced.  This information could usually be retrieved from the DOS BOOT sector.  Under NetWare volumes, there is no DOS BOOT sector.
  4868.  
  4869. SOLUTION
  4870.  
  4871.     An UNDOCUMENTED DOS function can be used: INT 21h, function 69h.  The following code is an example of retrieving data from drive I.
  4872.  
  4873.      union REGS inRegs, outRegs;
  4874.      struct SREGS segRegs;
  4875.  
  4876.      struct MID {
  4877.           WORD midInfoLevel;
  4878.           LONG midVolumeSerialNumber;
  4879.           BYTE midVolumeLabel[11];
  4880.           BYTE midFileSystemType[8];
  4881.        } MidInfo;
  4882.  
  4883.      far *pMidInfo;
  4884.  
  4885.      void main (void)
  4886.      {
  4887.  
  4888.         memset (&MidInfo, 0, sizeof (MidInfo));
  4889.  
  4890.         pMidInfo = (int *)&MidInfo;
  4891.  
  4892.         segread (&segRegs);
  4893.         inRegs.h.ah = 0x69;
  4894.         inRegs.h.al = 0x00;
  4895.         inRegs.h.bh = 0x08; /* drive letter to target */
  4896.         segRegs.ds =  FP_SEG (pMidInfo);
  4897.         inRegs.x.dx = FP_OFF (pMidInfo);
  4898.  
  4899.         int86x (0x21, &inRegs, &outRegs, &segRegs);
  4900.           printf ("\nSerial Number: %lx", MidInfo.midVolumeLabel,
  4901.                                      MidInfo.midVolumeSerialNumber);
  4902.      } /* main */
  4903.  
  4904.  
  4905.  
  4906.  
  4907. FYI:    Error When Using Turbo Pascal Interface for NWSQL 3.0
  4908.                                      FYI
  4909.  
  4910. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4911.  
  4912.           TITLE:    Error When Using Turbo Pascal Interface for NWSQL 3.0
  4913.    DOCUMENT ID#:    FYI.A.2516
  4914.            DATE:    25JUN92
  4915.         PRODUCT:    NetWare SQL
  4916. PRODUCT VERSION:    3.0
  4917.      SUPERSEDES:    NA
  4918.  
  4919.         SYMPTOM:    Compiling NWSQLINT.PAS returns error "undefined forward"
  4920.  
  4921.  
  4922. ISSUE/PROBLEM
  4923.  
  4924.     The Turbo Pascal interface included with NetWare SQL 3.0 allows the developer to specify whether the application will be using SQL-Level Functions, Primitive functions, or both.  This is done by commenting out one of the following lines, which appear at the top of the interface file NWSQLINT.PAS:
  4925.  
  4926.       {$DEFINE NWSQL_RELATIONAL_PRIMITIVES}
  4927.       {$DEFINE NWSQL_SQL_FUNCTIONS}
  4928.  
  4929.     If the second $DEFINE line (for the SQL-level functions) is commented out, indicating that only the primitive calls will be included, the interface can not be compiled into a Turbo Pascal Unit.  The error returned by the compiler is 59 (undefined forward).
  4930.  
  4931. SOLUTION
  4932.  
  4933.     Two of the prototypes defined in the miscellaneous section of this interface need to be moved into the SQL-Level prototype section.  These are:
  4934.  
  4935.             PROCEDURE SQLLevelCall;
  4936.             FUNCTION SQLManagerLoaded : BOOLEAN;
  4937.  
  4938.  
  4939.  
  4940.  
  4941. FYI:    The Requester WXQLCALL.DLL Can Interface With XQL
  4942.                                      FYI
  4943.  
  4944. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4945.  
  4946.           TITLE:    The Requester WXQLCALL.DLL Can Interface With XQL
  4947.    DOCUMENT ID#:    FYI.A.1934
  4948.            DATE:    25JUN92
  4949.         PRODUCT:    NetWare SQL
  4950. PRODUCT VERSION:    2.11a
  4951.      SUPERSEDES:    NA
  4952.  
  4953.         SYMPTOM:    The Requester WXQLCALL.DLL can interface with XQL
  4954.  
  4955.  
  4956. ISSUE/PROBLEM
  4957.  
  4958.     The requester version of the WXQLCALL.DLL can interface not only with NSREQ.EXE or NSREQS.EXE (to issue requests to the NetWare SQL engine at the server), but also with XQL.EXE, XQLO.EXE, XQLP.EXE or XQLPO.EXE.
  4959.  
  4960.     This is enabled by an optional patch (patch #38) in the patches for XQL/NetWare SQL v2.11.  This patch is for XQL[P[O]].EXE, not for WXQLCALL.DLL.
  4961.  
  4962. SOLUTION
  4963.  
  4964.     NA
  4965.  
  4966.  
  4967.  
  4968.  
  4969. FYI:    Status 80 May Not Be Returned If Two Users Do UPDATE
  4970.                                      FYI
  4971.  
  4972. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  4973.  
  4974.           TITLE:    Status 80 May Not Be Returned If Two Users Do UPDATE
  4975.    DOCUMENT ID#:    FYI.A.1933
  4976.            DATE:    25JUN92
  4977.         PRODUCT:    NetWare SQL
  4978. PRODUCT VERSION:    ANY
  4979.      SUPERSEDES:    NA
  4980.  
  4981.         SYMPTOM:    Status 80 May Not Be Returned If Two Users Do UPDATE
  4982.  
  4983.  
  4984. ISSUE/PROBLEM
  4985.  
  4986.     If two users read a record and then update the record one after the other, the second user may not get a status 80 depending on how the updates are being done.
  4987.  
  4988.     Compiling and executing an UPDATE statement causes NetWare SQL, any version, to read the record and then update it.  Because the read is being done after the first user updated the record, status 80 is not returned.
  4989.  
  4990.     If the two users read the record and then tried to update simultaneously, it is possible that status 80 would be returned due to the timing of the updates.
  4991.  
  4992. SOLUTION
  4993.  
  4994.     To avoid potentially overwriting another users updates, the application can be written to either:
  4995.  
  4996.         Fetch and lock the records to be updated before issuing the UPDATE statement
  4997.  
  4998.      OR
  4999.  
  5000.         Fetch the records to be updated, and then issue the xUpdate primitive to perform the update.  This primitive does do conflict checking, so a status 80 will be returned when two users try to update the same set of records.
  5001.  
  5002.  
  5003.  
  5004.  
  5005. FYI:    BUTIL v4.11 Reports Unknown Key Type
  5006.                                      FYI
  5007.  
  5008. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5009.  
  5010.           TITLE:    BUTIL v4.11 Reports Unknown Key Type
  5011.    DOCUMENT ID#:    FYI.A.1932
  5012.            DATE:    25JUN92
  5013.         PRODUCT:    Btrieve DOS 3.1
  5014. PRODUCT VERSION:    4.11
  5015.      SUPERSEDES:    NA
  5016.  
  5017.         SYMPTOM:    Reporting unknow key type
  5018.  
  5019.  
  5020. ISSUE/PROBLEM
  5021.  
  5022.     Autoincrement keys were introduced in Btrieve v5.00.  Accordingly, if a version previous to 5.x version of BUTIL is used to do a STAT of a Btrieve file containing  an autoincrement key, BUTIL will report the key as an 'Unknown' key type.
  5023.  
  5024. SOLUTION
  5025.  
  5026.     NA
  5027.  
  5028.  
  5029.  
  5030.  
  5031. FYI:    Btrieve STAT Documentation Error
  5032.                                      FYI
  5033.  
  5034. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5035.  
  5036.           TITLE:    Btrieve STAT Documentation Error
  5037.    DOCUMENT ID#:    FYI.A.1931
  5038.            DATE:    25JUN92
  5039.         PRODUCT:    Btrieve for DOS
  5040. PRODUCT VERSION:    5.10a
  5041.      SUPERSEDES:    NA
  5042.  
  5043.         SYMPTOM:    Btrieve STAT Documentation Error
  5044.  
  5045.  
  5046. ISSUE/PROBLEM
  5047.  
  5048.     In the documentation for the Btrieve STAT operation, the Btrieve  Programmer's Manual (page 4-97), April 1990 edition, states that the fourth value returned in a Key Specification block is '# of keys'.  This is incorrect.  The value that is returned is 'the # of unique values for the key segment'.
  5049.  
  5050. SOLUTION
  5051.  
  5052.     NA
  5053.  
  5054.  
  5055.  
  5056.  
  5057. FYI:    Problem With GetPhysicalRecordLocksByFile()
  5058.                                      FYI
  5059.  
  5060. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5061.  
  5062.           TITLE:    Problem With GetPhysicalRecordLocksByFile()
  5063.    DOCUMENT ID#:    FYI.A.3851
  5064.            DATE:    23JUN92
  5065.         PRODUCT:    NetWare C Interface DOS
  5066. PRODUCT VERSION:    1.2
  5067.      SUPERSEDES:    NA
  5068.  
  5069.         SYMPTOM:    Problem with GetPhysicalRecordLocksByFile()
  5070.  
  5071.  
  5072. ISSUE/PROBLEM
  5073.  
  5074.     GetPhysicalRecordLocksByFile() returns SUCCESSFUL return code, however, the structure (PHYS_REC_LOCK) contains all zeroes.
  5075.  
  5076. SOLUTION
  5077.  
  5078.     Make sure to initialize the lastRecord and lastTask parameters to -1 when making this call for the first time.  The docmentation states that these parameters should be 0 but that is incorrect.
  5079.  
  5080.  
  5081.  
  5082.  
  5083. FYI:    Btrieve Preimaging with 6.0
  5084.                                      FYI
  5085.  
  5086. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5087.  
  5088.           TITLE:    Btrieve Preimaging with 6.0
  5089.    DOCUMENT ID#:    FYI.A.2218
  5090.            DATE:    23JUN92
  5091.         PRODUCT:    NetWare Btrieve NLM
  5092. PRODUCT VERSION:    6.0
  5093.      SUPERSEDES:    NA
  5094.  
  5095.         SYMPTOM:    Btrieve Preimaging with 6.0
  5096.  
  5097.  
  5098. ISSUE/PROBLEM
  5099.  
  5100.     Does Btrieve 6.0 use preimaging for file integrity when working with files that were created with an earlier version of Btrieve?
  5101.  
  5102. SOLUTION
  5103.  
  5104.     Btrieve 6.0 will create a preimage file when writing to a Btrieve file that was created with an earlier version of Btrieve.  However, the format of the preimage file that Btrieve 6.0 creates is different from the format of a preimage file created by earlier versions of Btrieve.
  5105.  
  5106.     Subsequently, earlier versions of Btrieve will not be able to accurately interpret a preimage file created by Btrieve 6.0, and Btrieve 6.0 will not be able to accurately interpret a preimage file created with an earlier version of Btrieve. Therefore, if a user needs to interchange the Btrieve engine that will be accessing pre 6.0 Btrieve files, all preimage files must be cleaned up prior to swapping engines.  The procedure for doing this is as follows:
  5107.  
  5108.      1.    Check to see if a .PRE file exists for any Btrieve files
  5109.  
  5110.      2.    If a .PRE file exists, then
  5111.  
  5112.          a)    Open the Btrieve file in Exclusive mode.
  5113.  
  5114.          b)    Perform a Get First operation.
  5115.  
  5116.          c)    Perform an Update operation (this will not change the record).
  5117.  
  5118.          d)    Close the Btrieve file. (this should cause the .PRE file to get deleted)
  5119.  
  5120.      3.    Switch engines
  5121.  
  5122.      Note:    Remember that a Btrieve file can not be accessed simultaneously with a client Btrieve engine and NetWare Btrieve (on the server) at the same time.  The above procedure should be used if it is necessary to swap between a client engine and a server engine.
  5123.  
  5124.  
  5125.  
  5126.  
  5127. FYI:    Btrieve 6.0 Record Length
  5128.                                      FYI
  5129.  
  5130. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5131.  
  5132.           TITLE:    Btrieve 6.0 Record Length
  5133.    DOCUMENT ID#:    FYI.A.2217
  5134.            DATE:    23JUN92
  5135.         PRODUCT:    NetWare Btrieve NLM
  5136. PRODUCT VERSION:    6.0
  5137.      SUPERSEDES:    NA
  5138.  
  5139.         SYMPTOM:    Maximum record length
  5140.  
  5141.  
  5142. ISSUE/PROBLEM
  5143.  
  5144.     What is the maximum record length for a Btrieve file created with Btrieve 6.0?
  5145.  
  5146. SOLUTION
  5147.  
  5148.     With the new Btrieve 6.0 file format, the maximum fixed record length has changed to 4088 (previous max length was 4090).  The additional 2 bytes are used for a record usage count.  In addition, when defining a KEY ONLY file, the maximum key length has changed to 253 (was previously 255).  Again, the additional 2 bytes are being used for a record usage count.
  5149.  
  5150.  
  5151.  
  5152.  
  5153. FYI:    ReturnSpaceRestrictionForDirectory() Abends Server
  5154.                                      FYI
  5155.  
  5156. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5157.  
  5158.           TITLE:    ReturnSpaceRestrictionForDirectory() Abends Server
  5159.    DOCUMENT ID#:    FYI.A.3369
  5160.            DATE:    22JUN92
  5161.         PRODUCT:    Network C for NLMs
  5162. PRODUCT VERSION:    200c
  5163.      SUPERSEDES:    NA
  5164.  
  5165.         SYMPTOM:    Server Abend
  5166.  
  5167.  
  5168. ISSUE/PROBLEM
  5169.  
  5170.     ReturnSpaceRestrictionForDirectory() when used against a remote server always ignores the numberOfStructuresToReturn field.  This can cause it to return up to 512 bytes of data.
  5171.  
  5172. SOLUTION
  5173.  
  5174.     As a workaround, set aside a buffer of at least 512 bytes for the answerBuffer returned by the call.
  5175.  
  5176.  
  5177.  
  5178.  
  5179. FYI:    NetBIOS Send Fails With Multiple Sessions
  5180.                                      FYI
  5181.  
  5182. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5183.  
  5184.           TITLE:    NetBIOS Send Fails With Multiple Sessions
  5185.    DOCUMENT ID#:    FYI.A.3368
  5186.            DATE:    18JUN92
  5187.         PRODUCT:    NetWare System Calls
  5188. PRODUCT VERSION:    100
  5189.      SUPERSEDES:    NA
  5190.  
  5191.         SYMPTOM:    Netbios Send Timeouts (Completion Code 5 on the NCB)
  5192.  
  5193.  
  5194. ISSUE/PROBLEM
  5195.  
  5196.     The 3.02c version of NetBIOS, and all versions after 2.15a, do not handle handshaking between multiple NetBIOS sessions on one machine.  Multiple sessions' sends are not queued when sent.  This causes the receiving machine to run out of receive buffers, which causes NetBIOS to generate the status 5 (send timeout failure).  This symptom is more easily reproduced on token ring than Ethernet.  However, it has been reported on both topologies.
  5197.  
  5198. SOLUTION
  5199.  
  5200.     No workaround is available at this time, besides utilizing fewer NetBIOS sessions on one machine.
  5201.  
  5202.  
  5203.  
  5204.  
  5205. FYI:    ScanBinderyObjectTrusteePaths() Fails On 3.x Servers
  5206.                                      FYI
  5207.  
  5208. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5209.  
  5210.           TITLE:    ScanBinderyObjectTrusteePaths() Fails On 3.x Servers
  5211.    DOCUMENT ID#:    FYI.A.3367
  5212.            DATE:    18JUN92
  5213.         PRODUCT:    NetWare C Interface DOS
  5214. PRODUCT VERSION:    120
  5215.      SUPERSEDES:    NA
  5216.  
  5217.         SYMPTOM:    Incorrect trustee rights on 3.x servers.
  5218.  
  5219.  
  5220. ISSUE/PROBLEM
  5221.  
  5222.     ScanBinderyObjectTrusteePaths() returns incorrect trustee rights information for 3.x servers.
  5223.  
  5224. SOLUTION
  5225.  
  5226.     The only workaround at this time is to use ScanBinderyObjectTrusteePaths() to obtain all of the paths to which an object has trustee assignments.  The paths can then be passed to ScanEntryForTrustees() to obtain the correct trustee rights.
  5227.  
  5228.  
  5229.  
  5230.  
  5231. FYI:    Using GetEqual on a Corrupted File
  5232.                                      FYI
  5233.  
  5234. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5235.  
  5236.           TITLE:    Using GetEqual on a Corrupted File
  5237.    DOCUMENT ID#:    FYI.A.1863
  5238.            DATE:    18JUN92
  5239.         PRODUCT:    NetWare Btrieve
  5240. PRODUCT VERSION:    5.15
  5241.      SUPERSEDES:    NA
  5242.  
  5243.         SYMPTOM:    Get Equal returning incorrect value.
  5244.  
  5245.  
  5246. ISSUE/PROBLEM
  5247.  
  5248.     Customer had a file that had two keys:  0 and 1.  Key 0 was never used to traverse the file.  A client began to report that the wrong data was being displayed on their screens.  The application was doing a GET EQUAL on key 1 where the key value=1234.  However, when the application returned the data, the key value was 1235 and the data returned to the application was incorrect.  The status returned was 0 - "successful".
  5249.  
  5250.     Upon investigation of the file it was found to be corrupt.  In fact, traversing key 0 would result in status 2 (I/O Error).
  5251.  
  5252.     Why would Btrieve return a status of 0 on an operation that should have failed?  After all, a Get Equal on key 1, value=1234 should not have returned a value of 1235.
  5253.  
  5254. SOLUTION
  5255.  
  5256.     When a GET EQUAL or other GET call is made, the index is traversed until the specified key value is found.  Then, the record on the data page is found according to the address stored with the index.  The record is put into the data buffer, and then the key value is extracted from the appropriate bytes of this record and placed in the key buffer.  Therefore, the index page had not been corrupted and still contained the requested value, but the index  page's pointer back to the data page could have been corrupt, making it return the wrong record.
  5257.  
  5258.     The other alternative is that the record had become corrupt, possibly an update didn't complete, and when the key was extracted from the record, it contained a different value than the index page.
  5259.  
  5260.  
  5261.  
  5262.  
  5263. FYI:    Preallocation Limits
  5264.                                      FYI
  5265.  
  5266. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5267.  
  5268.           TITLE:    Preallocation Limits
  5269.    DOCUMENT ID#:    FYI.A.1862
  5270.            DATE:    18JUN92
  5271.         PRODUCT:    NetWare Btrieve
  5272. PRODUCT VERSION:    5.15
  5273.      SUPERSEDES:    NA
  5274.  
  5275.         SYMPTOM:    NA
  5276.  
  5277.  
  5278. ISSUE/PROBLEM
  5279.  
  5280.     What is the maximum number of pages that can be preallocated when creating a Btrieve file?
  5281.  
  5282. SOLUTION
  5283.  
  5284.     Since the preallocation value for the Btrieve create operation is only 2 bytes, 64K is the limit and hence 65535 is the maximum number of pages that can be preallocated for a Btrieve file.
  5285.  
  5286.  
  5287.  
  5288.  
  5289. FYI:    IPX Can Not Initialize From Windows Application
  5290.                                      FYI
  5291.  
  5292. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5293.  
  5294.           TITLE:    IPX Cannot Initialize From Windows Application
  5295.    DOCUMENT ID#:    FYI.A.2668
  5296.            DATE:    17JUN92
  5297.         PRODUCT:    NetWare C for Windows
  5298. PRODUCT VERSION:    1.3
  5299.      SUPERSEDES:    NA
  5300.  
  5301.         SYMPTOM:    IPX Cannot Initialize From Windows Application
  5302.  
  5303.  
  5304. ISSUE/PROBLEM
  5305.  
  5306.     Here is a run down of the problems that may be encountered when trying to execute a Windows communication application for Windows 3.0 and Windows 3.1 and C-interface for Windows 1.3 SDK:
  5307.  
  5308.     Any Mode:
  5309.  
  5310.     1.    Must be using IPX version 3.10 or better.
  5311.  
  5312.     2.    The NWIPXSPX.DLL must be the one that comes with the C-interface for Windows 1.3 SDK.
  5313.  
  5314.     Enhanced Mode:
  5315.  
  5316.     1.    Versions of VNETWARE.386, NETWARE.DRV, and VIPX.386 must be the ones that come with Windows 3.1.
  5317.  
  5318.     Standard Mode:
  5319.  
  5320.     1.    Must use TBMI.COM for Windows 3.0 and TBMI2.COM for Windows 3.1.
  5321.  
  5322.          ■    For Windows 3.0 the TBMI should be dated 7-10-91.  The TBMI.COM dated 06-17-91 may cause problems with DOS boxes.
  5323.  
  5324.          ■    For Windows 3.1 use the TBMI2.COM comes with C-Interface for Windows 1.3 SDK.
  5325.  
  5326.     This should indicate that both Windows 3.0 and Windows 3.1 will be able to run a communications application in enhanced mode with the same latest VIPX.386 and NWIPXSPX.DLL, along with the C-Interface for Windows 1.3 SDK.
  5327.  
  5328. SOLUTION
  5329.  
  5330.     NA
  5331.  
  5332.  
  5333.  
  5334.  
  5335. FYI:    Is TMBI/TBMI2 loaded?
  5336.                                      FYI
  5337.  
  5338. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5339.  
  5340.           TITLE:    Is TMBI/TBMI2 loaded?
  5341.    DOCUMENT ID#:    FYI.A.2667
  5342.            DATE:    17JUN92
  5343.         PRODUCT:    NetWare C for Windows
  5344. PRODUCT VERSION:    1.x
  5345.      SUPERSEDES:    NA
  5346.  
  5347.         SYMPTOM:    Is TMBI/TBMI2 loaded?
  5348.  
  5349.  
  5350. ISSUE/PROBLEM
  5351.  
  5352.     Determining if TBMI/TBMI2 is loaded may be carried out by using INT 2Fh with 7A10h in AX.  The version will be returned in DX (Major version in DH, minor version in DL).  The values will be zero if not installed.
  5353.  
  5354.     Using IPX/SPXInitialize may serve the same purpose to some degree indicating that IPX could not be initialized (error 240 or 0xF0).
  5355.  
  5356.     If the INT 2Fh method will be used, attention must be paid to the fact that TBMI/TBMI2 are TSRs and therefore run in REAL mode.  Running a Windows application which needs to check on TBMI will need to use DPMI to simulate the real mode interrupt.
  5357.  
  5358. SOLUTION
  5359.  
  5360.     NA
  5361.  
  5362.  
  5363.  
  5364.  
  5365. FYI:    Documentation Incorrect for ClearFileSet()
  5366.                                      FYI
  5367.  
  5368. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5369.  
  5370.           TITLE:    Documentation Incorrect for ClearFileSet()
  5371.    DOCUMENT ID#:    FYI.A.1663
  5372.            DATE:    17JUN92
  5373.         PRODUCT:    NetWare System Calls
  5374. PRODUCT VERSION:    1.0
  5375.      SUPERSEDES:    NA
  5376.  
  5377.         SYMPTOM:    Documentation Incorrect for ClearFileSet()
  5378.  
  5379.  
  5380. ISSUE/PROBLEM
  5381.  
  5382.     The documentation for ClearFileSet() and ClearFile() does not mention that these functions close the files being cleared.  All files in the set will be closed when using ClearFileSet().  The same is true for ClearFile(), except only the specified file will be closed.
  5383.  
  5384. SOLUTION
  5385.  
  5386.     Use ReleaseFileSet() or ReleaseFile() to release the lock(s).  The documentation for C Interface-DOS v1.2 is not missing this information.
  5387.  
  5388.  
  5389.  
  5390.  
  5391. FYI:    Invalid Line Number Reported from wherey()
  5392.                                      FYI
  5393.  
  5394. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5395.  
  5396.           TITLE:    Invalid Line Number Reported from wherey()
  5397.    DOCUMENT ID#:    FYI.A.1662
  5398.            DATE:    17JUN92
  5399.         PRODUCT:    Network C for NLMs
  5400. PRODUCT VERSION:    3.11a
  5401.      SUPERSEDES:    NA
  5402.  
  5403.         SYMPTOM:    Invalid line number reported from wherey()
  5404.  
  5405.  
  5406. ISSUE/PROBLEM
  5407.  
  5408.     The function, wherey(), if called immediately following a printf() on the last line of the screen that ended with a carriage return ('\n'), will return 25, which is an invalid screen position.  Calling gotoxy() with an invalid screen position causes an abend:
  5409.  
  5410.         PositionOutputCursor called with invalid row
  5411.  
  5412. SOLUTION
  5413.  
  5414.     The problem only seems to be when there are no characters following the '\n' AND the printf() was on the last line of the screen (line 24).
  5415.  
  5416.  
  5417.  
  5418.  
  5419. FYI:    Btrieve and AST Premium Notebook
  5420.                                      FYI
  5421.  
  5422. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5423.  
  5424.           TITLE:    Btrieve and AST Premium Notebook
  5425.    DOCUMENT ID#:    FYI.A.4202
  5426.            DATE:    16JUN92
  5427.         PRODUCT:    Btrieve for DOS
  5428. PRODUCT VERSION:    5.10a
  5429.      SUPERSEDES:    NA
  5430.  
  5431.         SYMPTOM:    Ctrl-Alt-Del does not remove Btrieve TSR from memory
  5432.  
  5433.  
  5434. ISSUE/PROBLEM
  5435.  
  5436.     If Btrieve version 5.10a is loaded on an AST Premium Exec SX/20 using BIOS 1.15, and then this machine is warm booted (Ctrl-Alt-Del), trying to reload Btrieve will fail with the message:
  5437.  
  5438.         Btrieve is already loaded
  5439.  
  5440.     This problem will not occur if Btrieve is unloaded with BUTIL -STOP or an application, or if the machine is hard booted.
  5441.  
  5442. SOLUTION
  5443.  
  5444.     This is not a Btrieve problem.  This is caused by the BIOS v1.15.
  5445.  
  5446.     To increase the speed for rebooting process, Ctrl-Alt-Del does not remove everything from memory.  This functionality does not exist with the earlier BIOS.
  5447.  
  5448.  
  5449.  
  5450.  
  5451. FYI:    Undocumented Structures for FEGetDirectoryEntry()
  5452.                                      FYI
  5453.  
  5454. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5455.  
  5456.           TITLE:    Undocumented Structures for FEGetDirectoryEntry()
  5457.    DOCUMENT ID#:    FYI.A.3850
  5458.            DATE:    16JUN92
  5459.         PRODUCT:    Network C for NLMs
  5460. PRODUCT VERSION:    2.0
  5461.      SUPERSEDES:    NA
  5462.  
  5463.         SYMPTOM:    Undocumented Structures for FEGetDirectoryEntry()
  5464.  
  5465.  
  5466. ISSUE/PROBLEM
  5467.  
  5468.     FEGetDirectoryEntry() returns pointers to the directory entry structures for non-DOS and DOS directory entries.  However, these structures are not documented.
  5469.  
  5470. SOLUTION
  5471.  
  5472.     These are internal structures and are not available for the developers.
  5473.  
  5474.  
  5475.  
  5476.  
  5477. FYI:    Btrieve VAP Abend With ARCnet Card
  5478.                                      FYI
  5479.  
  5480. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5481.  
  5482.           TITLE:    Btrieve VAP Abend With ARCnet Card
  5483.    DOCUMENT ID#:    FYI.A.1041
  5484.            DATE:    16JUN92
  5485.         PRODUCT:    NetWare Btrieve VAP
  5486. PRODUCT VERSION:    5.x
  5487.      SUPERSEDES:    NA
  5488.  
  5489.         SYMPTOM:    Server will abend shortly after Btrieve VAP loads
  5490.  
  5491.  
  5492. ISSUE/PROBLEM
  5493.  
  5494.     There is a particular ARCnet card that is not compatible with the Btrieve VAP version 5.x.  It is the Tiara Lan Card/A-PC16 ARCnet card.  When a server containing this card is brought up, and the Btrieve VAP has been installed, the VAP will load, but the server will subsequently abend with the error "General Protection Violation RC=FE".  This usually happens within 1 to 5 minutes after the Btrieve VAP loads.  This has been reported to occur under NetWare ELS Level II v2.15c and NetWare v2.2.
  5495.  
  5496. SOLUTION
  5497.  
  5498.     Users calling in with this problem should be referred to Tiara customer service at 1-800-NET-IARA (800-638-4272) and request RMA and swap for Tiara's LAN card/A*AT.  Upon receipt of the A*AT board, NetWare should be reconfigured utilizing Novell's Rxnet driver with the following settings:
  5499.  
  5500.         IRQ=2, I/O=300, buffer-cc00:0h
  5501.  
  5502.  
  5503.  
  5504.  
  5505. FYI:    NetWare J's Btrieve NLM Releases
  5506.                                      FYI
  5507.  
  5508. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5509.  
  5510.           TITLE:    NetWare J's Btrieve NLM Releases
  5511.    DOCUMENT ID#:    FYI.A.1040
  5512.            DATE:    16JUN92
  5513.         PRODUCT:    NetWare Btrieve NLM
  5514. PRODUCT VERSION:    5.16
  5515.      SUPERSEDES:    NA
  5516.  
  5517.         SYMPTOM:    NA
  5518.  
  5519.  
  5520. ISSUE/PROBLEM
  5521.  
  5522.     There have been two offical releases of Btrieve NLM v5.16 for NetWare J.  This may cause some confusion since they have different sizes, but the same version number.  The different size is attributable to the fact that applying the patches will cause the file size to increase.
  5523.  
  5524. SOLUTION
  5525.  
  5526.     The released sizes are:
  5527.  
  5528.     FILE          VERSION    SIZE      DATE          COMMENT
  5529.  
  5530.     BTRIEVE.NLM     5.16     68660    06-17-91    Original Release
  5531.     BTRIEVE.NLM     5.16a    69172    10-28-91    with patches 1-14 applied
  5532.  
  5533.     If you apply all of the currently available patches (through fix 32) to the original Btrieve NLM for NetWare J v5.16 the file will be:
  5534.  
  5535.         BTRIEVE.NLM     5.16    70708   06-04-92
  5536.  
  5537.     The BREQUEST.EXE v5.17 has not changed since the original release of the BTRIEVE.NLM v5.16 nor are there any patches currently for it.  It is:        
  5538.         BREQUEST.EXE    5.17    19704   06-03-91
  5539.  
  5540.  
  5541.  
  5542.  
  5543. FYI:    Using the MicroSoft 7.0 C/C++ Compiler
  5544.                                      FYI
  5545.  
  5546. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5547.  
  5548.           TITLE:    Using the MicroSoft 7.0 C/C++ Compiler
  5549.    DOCUMENT ID#:    FYI.A.2944
  5550.            DATE:    12JUN92
  5551.         PRODUCT:    NetWare C for Windows
  5552. PRODUCT VERSION:    v1.3
  5553.      SUPERSEDES:    NA
  5554.  
  5555.         SYMPTOM:    Mapping must point to appropriate compiler
  5556.  
  5557.  
  5558. ISSUE/PROBLEM
  5559.  
  5560.     When compiling an application on NetWare, using the latest MicroSoft 7.0 C/C++ compiler, search mappings must be setup to point to the appropriate compiler files.
  5561.  
  5562.     For example:    MAP ROOT INS S16:=SERVER\VOLUME:C7\BIN 
  5563.  
  5564.     Without the ROOT keyword S16: will be interpreted by the NMAKE utility as S16:\  The ROOT keyword makes the directory act as the root, so S16: is interpreted as the correct directory.
  5565.  
  5566. SOLUTION
  5567.  
  5568.     NA
  5569.  
  5570.  
  5571.  
  5572.  
  5573. FYI:    Drivers Needed for Windows Development
  5574.                                      FYI
  5575.  
  5576. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5577.  
  5578.           TITLE:    Drivers Needed for Windows Development
  5579.    DOCUMENT ID#:    FYI.A.2666
  5580.            DATE:    12JUN92
  5581.         PRODUCT:    NetWare C for Windows
  5582. PRODUCT VERSION:    1.3
  5583.      SUPERSEDES:    NA
  5584.  
  5585.         SYMPTOM:    Drivers needed for Windows 3.1
  5586.  
  5587.  
  5588. ISSUE/PROBLEM
  5589.  
  5590.     What drivers are needed for developing and running Windows applications for Windows 3.1?
  5591.  
  5592.     Here is the current picture:
  5593.  
  5594.      1.    Use the VNETWARE.386, NETWARE.DRV, and VIPX.386, that come with Windows 3.1.
  5595.  
  5596.      2.    Use the DLLs that come with the C-interface for Windows 1.3 SDK (NOT the drivers mentioned above in the '\DRVRS' directory).
  5597.  
  5598.      3.    If using Standard mode, use the TBMI2.COM that comes with the C-interface for Windows 1.3 SDK.
  5599.  
  5600.     As an aside:  The VIPX.386 and the NWIPXSPX.DLL are compatible for use on Windows 3.0.
  5601.  
  5602. SOLUTION
  5603.  
  5604.     NA
  5605.  
  5606.  
  5607.  
  5608.  
  5609. FYI:    Purpose of WBTRVRES.DLL
  5610.                                      FYI
  5611.  
  5612. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5613.  
  5614.           TITLE:    Purpose of WBTRVRES.DLL
  5615.    DOCUMENT ID#:    FYI.A.2513
  5616.            DATE:    12JUN92
  5617.         PRODUCT:    Btrieve Requester for Windows
  5618. PRODUCT VERSION:    6.0
  5619.      SUPERSEDES:    NA
  5620.  
  5621.         SYMPTOM:    NA
  5622.  
  5623.  
  5624. ISSUE/PROBLEM
  5625.  
  5626.     What is the purpose of WBTRVRES.DLL?
  5627.  
  5628. SOLUTION
  5629.  
  5630.     WBTRVRES.DLL is a resource DLL for the Btrieve requester for Windows v6.0.  All the message strings that are displayed when using the WBTRCALL.DLL requester have been moved to WBTRVRES.DLL.
  5631.  
  5632.     The intent is to make it easier to internationalize the product.  To support French, for example, instead of having to overhaul WBTRCALL.DLL completely, a WBTRVRES.DLL which has the message strings in French can be used instead of the originally shipped  WBTRVRES.DLL.
  5633.  
  5634.  
  5635.  
  5636.  
  5637. FYI:    Windows, TBMI, VIPX.386 and DOS Applications
  5638.                                      FYI
  5639.  
  5640. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5641.  
  5642.           TITLE:    Windows, TBMI, VIPX.386 and DOS Applications
  5643.    DOCUMENT ID#:    FYI.A.2422
  5644.            DATE:    12JUN92
  5645.         PRODUCT:    NetWare Btrieve
  5646. PRODUCT VERSION:    5.x
  5647.      SUPERSEDES:    NA
  5648.  
  5649.         SYMPTOM:    NA
  5650.  
  5651.  
  5652. ISSUE/PROBLEM
  5653.  
  5654.     Within Windows, running Brequest and a DOS application in a DOS box requires different setups depending on which version of Windows is used and whether or not Windows is run in standard mode or enhanced mode.
  5655.  
  5656. SOLUTION
  5657.  
  5658.     If Windows v3.0 is run in standard mode, then load TBMI.COM before getting into Windows.
  5659.  
  5660.     In the DOS box, load TASKID.COM, BREQUEST.EXE, and the DOS application (in that order).  TBMI.COM and TASKID.COM are currently available on CompuServe in NOVLIB, data libraries 1 and/or 5.  The name of the file to download is WINUP6.ZIP.
  5661.  
  5662.     ■    If Windows v3.1 is run in standard mode, then load TBMI2.COM before getting into Windows.  In the DOS box, load BREQUEST.EXE and then the DOS application.  TBMI2.COM comes with Windows v3.1.
  5663.  
  5664.     ■    If Windows v3.0 or Windows v3.1 is run in enhanced mode, then VIPX.386 should be used.  This requires modifying the SYSTEM.INI file under the [386Enh] header, and adding the following line:
  5665.  
  5666.              network=VIPX.386
  5667.  
  5668.     After getting into Windows, load BREQUEST.EXE in the DOS box, and then load the DOS application.  The VIPX.386 included with Windows 3.1 or in the WINUP6.ZIP file on Compuserve is the version that should be used; do not use the version included with Windows 3.0.
  5669.  
  5670.     If a Windows application (not a DOS application) requires BREQUEST.EXE, then BREQUEST.EXE should be loaded before getting into Windows.  There is another FYI (FYI.A.2022) that explains what to do if a Windows application and a DOS application need to be running at the same time, and both of them require BREQUEST.EXE.
  5671.  
  5672.  
  5673.  
  5674.  
  5675. FYI:    Watcom 9.0 Linker Error 1100
  5676.                                      FYI
  5677.  
  5678. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5679.  
  5680.           TITLE:    Watcom 9.0 Linker Error 1100
  5681.    DOCUMENT ID#:    FYI.A.3366
  5682.            DATE:    11JUN92
  5683.         PRODUCT:    Network C for NLMs
  5684. PRODUCT VERSION:    2.0c
  5685.      SUPERSEDES:    NA
  5686.  
  5687.         SYMPTOM:    Error 1100 when redefining far and near pointers
  5688.  
  5689.  
  5690. ISSUE/PROBLEM
  5691.  
  5692.     When developing in the flat memory model, a developer may want to redefine the far and near pointers.  This could be accomplished successfully with the Watcom 7.0 compiler.  However, the 9.0 compiler would not allow this; instead it generated the message "Error! E1100:  Definition of macro 'far' not identical to previous definition".
  5693.  
  5694. SOLUTION
  5695.  
  5696.     Use the following preprocessor commands to determine if the definition has been assigned, and simply undefine the value before attempting to assign it a new value.
  5697.  
  5698.      #ifdef far
  5699.        #undef far
  5700.        #define far
  5701.      #endif
  5702.  
  5703.     The above redefines "far" to have no effect in the compiled code.
  5704.  
  5705.  
  5706.  
  5707.  
  5708. FYI:    ReturnSpaceRestrictionForDirectory() Problem
  5709.                                      FYI
  5710.  
  5711. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5712.  
  5713.           TITLE:    ReturnSpaceRestrictionForDirectory() Problem
  5714.    DOCUMENT ID#:    FYI.A.3365
  5715.            DATE:    11JUN92
  5716.         PRODUCT:    Network C for NLMs
  5717. PRODUCT VERSION:    2.0c
  5718.      SUPERSEDES:    NA
  5719.         SYMPTOM:    -1 Returned For Valid Directory
  5720.  
  5721.  
  5722. ISSUE/PROBLEM
  5723.  
  5724.     ReturnSpaceRestrictionForDirectory() is returning a -1 when used against a directory which is a subdirectory of a parent with directory retrictions enforced.  The call should return the amount of the restriction remaining for the directory.
  5725.  
  5726. SOLUTION
  5727.  
  5728.     The only work-around at this time is to scan all levels of a directory tree when searching for restrictions.
  5729.  
  5730.  
  5731.  
  5732.  
  5733. FYI:    Btrieve Files Left Open; Network Backups Fail
  5734.                                      FYI
  5735.  
  5736. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5737.  
  5738.           TITLE:    Btrieve Files Left Open; Network Backups Fail
  5739.    DOCUMENT ID#:    FYI.A.1039
  5740.            DATE:    10JUN92
  5741.         PRODUCT:    NetWare Btrieve
  5742. PRODUCT VERSION:    5.x
  5743.      SUPERSEDES:    NA
  5744.  
  5745.         SYMPTOM:    BCONSOLE shows files open, but no associated User ID
  5746.  
  5747.  
  5748. ISSUE/PROBLEM
  5749.  
  5750.     Under NetWare 3.x and the Btrieve NLM v5.x, workstations that have been logged off of the network due to time restrictions put into place by the system administrator may have left Btrieve files open to the NLM. This can only occur if, at the time when they are automatically logged off, they were in an application with Btrieve files opened on the server.
  5751.  
  5752.     If such a situation occurs, the BCONSOLE utility will show the files as open, but with no associated connection ID.  As long as there is power to the network card and Brequest is still loaded on that workstation, the SPX session is still valid and those Btrieve files will remain open.
  5753.  
  5754.     A situation may arise in an application where one or more files are opened multiple times (multiple handles allocated for each file) and then each handle is not properly closed by the application.  This will keep those files which did not have all its handles cleared open to the Btrieve NLM until one of two things occur.
  5755.  
  5756.     First, if the workstation performs a RESET operation from within the application or with the Btrieve utility, BUTIL.EXE, all file handles allocated to that connection will be cleared.
  5757.  
  5758.     Alternatively, if the workstation is rebooted or powered off, the NetWare Watchdog will detect the connection as being lost and signal the Btrieve NLM to close all files opened to that lost connection ID.
  5759.  
  5760.     Oftentimes this is the cause for network backups failing to gain access to Btrieve files.  With Btrieve holding a file open, the backup utility is not allowed access to the file.  This is assuming the Btrieve data file is properly flagged as RW (such as nonsharable read write) at the NetWare level.
  5761.  
  5762. SOLUTION
  5763.  
  5764.     The only way to close files which the Btrieve NLM has open with no associated connection is to issue a BSTOP at the server console which will unload the BSPXCOM and BTRIEVE NLMs, or power off the workstations that had been running Btrieve applications.
  5765.  
  5766.  
  5767.  
  5768.  
  5769. FYI:    Passing Parameters to Primitive Functions With Visual Basic
  5770.                                      FYI
  5771.  
  5772. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5773.  
  5774.           TITLE:    Passing Parameters to Primitive Functions With Visual Basic
  5775.    DOCUMENT ID#:    FYI.A.2219
  5776.            DATE:    09JUN92
  5777.         PRODUCT:    NetWare SQL
  5778. PRODUCT VERSION:    3.0
  5779.      SUPERSEDES:    NA
  5780.  
  5781.         SYMPTOM:    XQLP Function calls not working
  5782.  
  5783.  
  5784. ISSUE/PROBLEM
  5785.  
  5786.     XQL Primitive function calls do not seem to work with Visual Basic.
  5787.  
  5788. SOLUTION
  5789.  
  5790.     In order to pass Visual Basic strings 'by reference', the Function Declaration section needs to specify ByVal on any string parameter.
  5791.  
  5792.     According to Microsoft Visual Basic Programmer's Guide (1991), page 382 "Calling DLL Routines with Specific Data Types" ...The routines in most DLLs expect standard C strings which end in a null character.  If a DLL routine expects a C string as an argument, declare the argument as a string with the ByVal keyword.  When used with a string argument, ByVal tells Visual Basic to pass the string as a C string ending with a null character.
  5793.  
  5794.     What does this really mean?
  5795.  
  5796.         The ByVal clause tells Visual Basic to pass the string address by value (not by reference), instead of just passing the string itself.  So, if the XQLP documentation requires a string parameter to be passed by reference, the Visual Basic Function Declaration needs to specify ByVal.
  5797.  
  5798.         If XQLP requires the string by value, the Visual Basic Function Declaration needs to specify "as String" or "as VarName$".  Integers work just the opposite.  If XQLP requires the integer by value, the Visual Basic Function Declaration needs to specify ByVal.
  5799.  
  5800.         If XQLP requires the integer by reference, the Visual Basic Function Declaration needs to specify "as Integer" or "as VarName%".
  5801.  
  5802.         If XQLP requires a structure, which is generally the databuffer, Visual Basic stores Type Defs in a different area than strings, and as such, it gets handled the same way as integers with respect to the ByVal clause in the Function Declaration.
  5803.  
  5804.  
  5805.  
  5806.  
  5807. FYI:    Status 95 with Xircom
  5808.                                      FYI
  5809.  
  5810. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5811.  
  5812.           TITLE:    Status 95 with Xircom
  5813.    DOCUMENT ID#:    FYI.A.2028
  5814.            DATE:    09JUN92
  5815.         PRODUCT:    NetWare Btrieve
  5816. PRODUCT VERSION:    5.15
  5817.      SUPERSEDES:    NA
  5818.  
  5819.         SYMPTOM:    Status 95
  5820.  
  5821.  
  5822. ISSUE/PROBLEM
  5823.  
  5824.     When using a Xircom Pocket Arcnet Adapter, SPX sessions are lost which cause Brequest to return a status 95 - Session No Longer Valid.
  5825.  
  5826. SOLUTION
  5827.  
  5828.     Use the latest ODI drivers from Xircom along with Novell's latest NetWare ODI shells.
  5829.  
  5830.     ■    If using a Xircom Arcnet Pocket Adapter II (PA202BT), the file needed from Xircom is PA2ODI.EXE.  This file contains PA2MLID.COM v1.01.
  5831.  
  5832.     ■    If using an original Xircom Arcnet Pocket Adapter (PA02BT), obtain PA_ODI.EXE from Xircom.  This file contains PAMLID.COM v1.10.  The latest LSL.COM v1.21 is on Netwire in DOSUP5.ZIP and the latest IPXODI.COM v1.20 is in the NSD forum in ODIWIN.ZIP.  On the workstation load: LSL.COM PA2MLID.COM or PAMLID.COM (depending on adapter), IPXODI
  5833.  
  5834.     With these drivers, the status 95s will not occur.
  5835.  
  5836.     Xircom can be contacted at 800-874-4428 and their bulletin board number is 818-878-7618.
  5837.  
  5838.  
  5839.  
  5840.  
  5841. FYI:    INT 2F Calls Causes 2.2 Server Abend
  5842.                                      FYI
  5843.  
  5844. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5845.  
  5846.           TITLE:    INT 2F Calls Causes 2.2 Server Abend
  5847.    DOCUMENT ID#:    FYI.A.3364
  5848.            DATE:    05JUN92
  5849.         PRODUCT:    NetWare System Calls
  5850. PRODUCT VERSION:    1.0
  5851.      SUPERSEDES:    NA
  5852.  
  5853.         SYMPTOM:    Abend: Invalid channel semaphore state on other process
  5854.  
  5855.  
  5856. ISSUE/PROBLEM
  5857.  
  5858.     An INT 2F call with AX set to 0x804C issued from the nondedicated DOS box of a 2.2 server will cause the server to abend.  If an application that normally runs on a DOS workstation causes a nondedicated server to abend, the developer may want to examine INT 2F calls.
  5859.  
  5860. SOLUTION
  5861.  
  5862.     None is available at this time.
  5863.  
  5864.  
  5865.  
  5866.  
  5867. FYI:    Btrieve Status 38 on NetWare Lite 1.0
  5868.                                      FYI
  5869.  
  5870. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5871.  
  5872.           TITLE:    Btrieve Status 38 on NetWare Lite 1.0
  5873.    DOCUMENT ID#:    FYI.A.3363
  5874.            DATE:    05JUN92
  5875.         PRODUCT:    Btrieve DOS
  5876. PRODUCT VERSION:    5.10a
  5877.      SUPERSEDES:    NA
  5878.  
  5879.         SYMPTOM:    Status 38 on End Transaction Operation
  5880.  
  5881.  
  5882. ISSUE/PROBLEM
  5883.  
  5884.     Btrieve returns a status 38 (Transaction Control File I/O Error) on an End Transaction operation on NetWare Lite.  This only occurs if patch 79 has been applied to BTRIEVE.EXE 5.10a.  This problem surfaces if two or more stations have Btrieve loaded and are utilizing transactions.
  5885.  
  5886. SOLUTION
  5887.  
  5888.     Patch 116 now resolves the problem.  All Btrieve patches should be reapplied.
  5889.  
  5890.  
  5891.  
  5892.  
  5893. FYI:    Multiple Records With Same Values
  5894.                                      FYI
  5895.  
  5896. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5897.  
  5898.           TITLE:    Multiple Records With Same Values
  5899.    DOCUMENT ID#:    FYI.A.2515
  5900.            DATE:    05JUN92
  5901.         PRODUCT:    Xtrieve PLUS
  5902. PRODUCT VERSION:    4.x
  5903.      SUPERSEDES:    NA
  5904.  
  5905.         SYMPTOM:    Multiple records displayed with the same data value.
  5906.  
  5907.  
  5908. ISSUE/PROBLEM
  5909.  
  5910.     After inserting or editing records with Xtrieve PLUS, sometimes it appears as though all the records have the values from the first record in one or more fields.  This problem is caused by reorganizing the file and adding fields that do not exist in the Btrieve physical file.
  5911.  
  5912. SOLUTION
  5913.  
  5914.     Xtrieve expects the dictionary definition for a particular file to "match" the actual Btrieve data file.  If the Btrieve file is defined with a record length of 100 bytes, then the lengths of all the fields defined in Xtrieve for this file (excluding a Note or Lvar field, if one is defined) should total 100.
  5915.  
  5916.     Often times, users add new fields in the dictionary definition, but do not modify the Btrieve file.  If there is not an exact match, Xtrieve will behave unpredictably.  Reorganize the file and make sure the logical record size matches the physical size.
  5917.  
  5918.  
  5919.  
  5920.  
  5921. FYI:    Lotus Configuration for the DataLens Driver
  5922.                                      FYI
  5923.  
  5924. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5925.  
  5926.           TITLE:    Lotus Configuration for the DataLens Driver
  5927.    DOCUMENT ID#:    FYI.A.2514
  5928.            DATE:    05JUN92
  5929.         PRODUCT:    NetWare SQL
  5930. PRODUCT VERSION:    3.0
  5931.      SUPERSEDES:    NA
  5932.  
  5933.         SYMPTOM:    DataLens Driver not loaded.
  5934.  
  5935.  
  5936. ISSUE/PROBLEM
  5937.  
  5938.     If a drive letter and path are used in the LOTUS.BCF file to specify the location of the datalens driver for NetWare SQL, and this location is not the Lotus directory or the current working directory, the driver will not be found.
  5939.  
  5940. SOLUTION
  5941.  
  5942.     Leave the driver (LTSNWSQL.DLD or LTSNWSQL.DLL) in the Lotus directory or in the application's directory.
  5943.  
  5944.  
  5945.  
  5946.  
  5947. FYI:    SubmitAccountCharge() Truncates Comment
  5948.                                      FYI
  5949.  
  5950. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5951.  
  5952.           TITLE:    SubmitAccountCharge() Truncates Comment
  5953.    DOCUMENT ID#:    FYI.A.1661
  5954.            DATE:    05JUN92
  5955.         PRODUCT:    NetWare C-Interface DOS
  5956. PRODUCT VERSION:    1.2
  5957.      SUPERSEDES:    NA
  5958.  
  5959.         SYMPTOM:    NA
  5960.  
  5961.  
  5962. ISSUE/PROBLEM
  5963.  
  5964.     The function call, SubmitAccountCharge(), is expecting the comment parameter to be a null terminated string, and thus truncates binary data when there is a 0 byte in the buffer.
  5965.  
  5966. SOLUTION
  5967.  
  5968.     Change the source code to SubmitAccountCharge() (in SBTACTCH.C) to accept an eighth parameter (BYTE CommentLen) and remove the following two lines from within the function:
  5969.  
  5970.         BYTE CommentLen;
  5971.         .   .   .       CommentLen = MIN( (BYTE)(strlen(comment)), 255 );
  5972.  
  5973.     This change is not required for the standard accounting charges because they do not need to contain binary data.  However, custom service types may require binary data in the comment field.
  5974.  
  5975.  
  5976.  
  5977.  
  5978. FYI:    SPX Locks Up During Connection Establishment
  5979.                                      FYI
  5980.  
  5981. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  5982.  
  5983.           TITLE:    SPX Locks Up During Connection Establishment
  5984.    DOCUMENT ID#:    FYI.A.3156
  5985.            DATE:    03JUN92
  5986.         PRODUCT:    NetWare C Interface DOS
  5987. PRODUCT VERSION:    1.2
  5988.      SUPERSEDES:    NA
  5989.  
  5990.         SYMPTOM:    Cannott establish SPX connection
  5991.  
  5992.  
  5993. ISSUE/PROBLEM
  5994.  
  5995.     A customer-written SPX application was locking up on the server side (listen for connection), when a client initiated a new session (establish connection).
  5996.  
  5997.     The problem was traced into IPX, and it was determined that it was locking up while trying to get a RIP for sending the acknowledgment.  This problem was also occurring with the SPXCHAT program, and it only manifested itself if a router separated the client and server applications.
  5998.  
  5999. SOLUTION
  6000.  
  6001.     The problem was eventually traced to a problem with the Kodiak Raven-8 LAN drivers in the workstations.  By upgrading to the latest version, 3.20 (920303), everything started working.
  6002.  
  6003.     It has not been determined if this latest version is either certified, or in the process of being certified.  An older version (older than the one being used) was Novell certified.
  6004.  
  6005.  
  6006.  
  6007.  
  6008. FYI:    GetDLLVersion() Returns Wrong Version
  6009.                                      FYI
  6010.  
  6011. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6012.  
  6013.           TITLE:    GetDLLVersion() Returns Wrong Version
  6014.    DOCUMENT ID#:    FYI.A.2665
  6015.            DATE:    03JUN92
  6016.         PRODUCT:    NetWare C for Windows
  6017. PRODUCT VERSION:    1.3
  6018.      SUPERSEDES:    GetDLLVersion for C-Int. Win 1.3
  6019.  
  6020.         SYMPTOM:    Version String and Actual Version are Different.
  6021.  
  6022.  
  6023. ISSUE/PROBLEM
  6024.  
  6025.     The GetDLLVersion() API has a BUG in the C-Interface for Windows 1.3.  The version string contains the correct version information (1.3.1) but the API returns 1.3.0.  This was verified by looking at the code.
  6026.  
  6027.     NOTE: the version string is used by the VERSION.EXE.
  6028.  
  6029. SOLUTION
  6030.  
  6031.     Since the source is provided with the 1.3 SDK, the API that GetDLLVersion() calls, ReturnVersion in the VIPXSPX.C module may be modified accordingly.
  6032.  
  6033.  
  6034.  
  6035.  
  6036. FYI:    Problem With SERSERV.NLM
  6037.                                      FYI
  6038.  
  6039. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6040.  
  6041.           TITLE:    Problem With SERSERV.NLM
  6042.    DOCUMENT ID#:    FYI.A.4116
  6043.            DATE:    02JUN92
  6044.         PRODUCT:    Network C for NLMs
  6045. PRODUCT VERSION:    SDK C
  6046.      SUPERSEDES:    NA
  6047.  
  6048.         SYMPTOM:    Invalid Port Number
  6049.  
  6050.  
  6051. ISSUE/PROBLEM
  6052.  
  6053.     When trying to debug an NLM using SERSERV.NLM configured for COM2, it will not load.  An error message saying 'Invalid Port Number' will be returned.
  6054.  
  6055. SOLUTION
  6056.  
  6057.     The current workaround is to use COM1 instead of COM2.
  6058.  
  6059.  
  6060.  
  6061.  
  6062. FYI:    CloseSemaphore() in Windows
  6063.                                      FYI
  6064.  
  6065. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6066.  
  6067.           TITLE:    CloseSemaphore() in Windows
  6068.    DOCUMENT ID#:    FYI.A.3849
  6069.            DATE:    02JUN92
  6070.         PRODUCT:    NetWare C for Windows
  6071. PRODUCT VERSION:    1.3
  6072.      SUPERSEDES:    NA
  6073.  
  6074.         SYMPTOM:    Status 255
  6075.  
  6076.  
  6077. ISSUE/PROBLEM
  6078.  
  6079.     CloseSemaphore() fails with the return code 255 (Invalid Semaphore Handle).
  6080.  
  6081. SOLUTION
  6082.  
  6083.     This used to be a bug in the older versions of Netware.drv and vNetware.386. The drivers dated 5/1/90 returned this error.  However, this problem has been fixed in the newer versions of Netware.drv and vNetware.386.  The drivers that are shipped with Netware C Interface for Windows v1.2 or higher do not have this problem.
  6084.  
  6085.  
  6086.  
  6087.  
  6088. FYI:    NWGetDrivePath() Documentation Error
  6089.                                      FYI
  6090.  
  6091. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6092.  
  6093.           TITLE:    NWGetDrivePath() Documentation Error
  6094.    DOCUMENT ID#:    FYI.A.3848
  6095.            DATE:    02JUN92
  6096.         PRODUCT:    NetWare OS/2 SDK
  6097. PRODUCT VERSION:    1.3
  6098.      SUPERSEDES:    NA
  6099.  
  6100.         SYMPTOM:    Documentation error NWGetDrivePath()
  6101.  
  6102.  
  6103. ISSUE/PROBLEM
  6104.  
  6105.     In the Documentation of Netware OS/2 API Reference v1.3, there is an API documented as NWGetFilePath().  However, this API is not found in the header files.
  6106.  
  6107. SOLUTION
  6108.  
  6109.     This is a documentation error.  This API should be documented as NWGetDrivePath() and not as NWGetFilePath().  This is already fixed in the Version 2.0 of the Netware OS/2 API Reference.
  6110.  
  6111.  
  6112.  
  6113.  
  6114. FYI:    GetDLLVersion() Not Supported
  6115.                                      FYI
  6116.  
  6117. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6118.  
  6119.           TITLE:    GetDLLVersion() Not Supported
  6120.    DOCUMENT ID#:    FYI.A.2664
  6121.            DATE:    01JUN92
  6122.         PRODUCT:    NetWare C for Windows
  6123. PRODUCT VERSION:    1.3
  6124.      SUPERSEDES:    NA
  6125.  
  6126.         SYMPTOM:    GetDLLVersion not support for WSDK 1.3
  6127.  
  6128.  
  6129. ISSUE/PROBLEM
  6130.  
  6131.     The GetDLLVersion function was not being exported or supported for the C-Interface for Windows SDK 1.3.
  6132.  
  6133. SOLUTION
  6134.  
  6135.     Following is a section of code, basically taken from the DLL API.  It may be placed directly into an application or an OBJ built out of it.
  6136.  
  6137.      #include "windows.h"         /* required for all Windows applications */
  6138.  
  6139.      /* NetWare C-Interface for Windows SDK - Header section */
  6140.  
  6141.      #include "nwmisc.h"
  6142.  
  6143.      extern void ReturnVersion( BYTE far *majorVersion,
  6144.                                 BYTE far *minorVersion,
  6145.                                 BYTE far *revisionLevel,
  6146.                                 BYTE far *betaReleaseLevel );
  6147.       :
  6148.       :
  6149.       :
  6150.       HANDLE           hDriver;
  6151.       static FARPROC   lpfnReturnVersion;
  6152.       char             DLLName[];
  6153.       BYTE             majorVersion;
  6154.       BYTE             minorVersion;
  6155.       BYTE             revisionLevel;
  6156.       BYTE             betaReleaseLevel;
  6157.       int              rc;
  6158.       :
  6159.       :
  6160.       :
  6161.       hDriver = LoadLibrary( DLLName );
  6162.       lpfnReturnVersion = GetProcAddress( hDriver, "ReturnVersion" );
  6163.  
  6164.       if ( lpfnReturnVersion != NULL )
  6165.          ( *lpfnReturnVersion )( (BYTE far *)&majorVersion,
  6166.                                  (BYTE far *)&minorVersion,
  6167.                                  (BYTE far *)&revisionLevel,
  6168.                                  (BYTE far *)&betaReleaseLevel );
  6169.       if( lpfnReturnVersion == NULL ) {
  6170.          majorVersion = 0;
  6171.          minorVersion = 0;
  6172.          revisionLevel = 0;
  6173.          betaReleaseLevel = 0;
  6174.          }
  6175.       :
  6176.       :
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182. FYI:    Btrieve 6.0 and Patch311.NLM
  6183.                                      FYI
  6184.  
  6185. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6186.  
  6187.           TITLE:    Btrieve 6.0 and Patch311.NLM
  6188.    DOCUMENT ID#:    FYI.A.2216
  6189.            DATE:    29MAY92
  6190.         PRODUCT:    NetWare Btrieve NLM
  6191. PRODUCT VERSION:    6.00
  6192.      SUPERSEDES:    NA
  6193.  
  6194.         SYMPTOM:    Btrieve NLM fails to load
  6195.  
  6196.  
  6197. ISSUE/PROBLEM
  6198.  
  6199.     BTRIEVE.NLM version 6.00 will attempt to autoload PATCH311.NLM.  This patch file fixes certain problems with the CLIB.NLM that was released with NetWare v3.11.
  6200.  
  6201.     PATCH311.NLM will only load if the released CLIB.NLM is running.  If the system is running a newer CLIB.NLM, PATCH311.NLM is smart enough to recognize it and do nothing.  Since BTRIEVE.NLM version 6.0 is autoloading PATCH311.NLM, it must be available in the SYS:\SYSTEM directory regardless of what CLIB.NLM the network is running.
  6202.  
  6203.     If BTRIEVE.NLM cannot find PATCH311.NLM it will not load.  When BTRIEVE.NLM attempts to autoload PATCH311.NLM, as long as it can find PATCH311.NLM, BTRIEVE.NLM will load regardless of whether  PATCH311.NLM successfully loads or not (based on the CLIB.NLM that is loaded).
  6204.  
  6205. SOLUTION
  6206.  
  6207.     When using BTRIEVE.NLM version 6.00 with NetWare version 3.11, make sure that PATCH311.NLM is in the SYS:\SYSTEM directory prior to trying to load BTRIEVE.NLM.
  6208.  
  6209.  
  6210.  
  6211.  
  6212. FYI:    Xtrieve For OS/2 And the OS/2 LIBPATH
  6213.                                      FYI
  6214.  
  6215. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6216.  
  6217.           TITLE:    Xtrieve For OS/2 And the OS/2 LIBPATH
  6218.    DOCUMENT ID#:    FYI.A.2510
  6219.            DATE:    06MAY92
  6220.         PRODUCT:    Xtrieve PLUS OS/2
  6221. PRODUCT VERSION:    4.01a
  6222.      SUPERSEDES:    NA
  6223.  
  6224.         SYMPTOM:    Segmentation Violation.
  6225.  
  6226. ISSUE/PROBLEM
  6227.  
  6228.     If the OS/2 LIBPATH in the CONFIG.SYS is too long, a segmentation violation can be produced when selecting the Report Option from the Xtrieve Main Menu. The Xtrieve OS/2 buffer used to parse the LIBPATH variable can only handle approximately 120 bytes.  If the LIBPATH variable is longer than this, it produces a segmentation violation.
  6229.  
  6230. SOLUTION
  6231.  
  6232.     Specify a shorter LIBPATH.  It may be helpful to set up two command files, one which sets a short LIBPATH specifying the directory containing the DLLs necessary for Xtrieve, and another which sets the LIBPATH as it is defined in the CONFIG.SYS file.  Execute these command files before and after running Xtrieve to avoid the segmentation violation problem.
  6233.  
  6234.  
  6235.  
  6236.  
  6237. FYI:    Brequest and Map Root Drives
  6238.                                      FYI
  6239.  
  6240. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6241.  
  6242.           TITLE:    Brequest and Map Root Drives
  6243.    DOCUMENT ID#:    FYI.A.2027
  6244.            DATE:    05MAY92
  6245.         PRODUCT:    NetWare Btrieve
  6246. PRODUCT VERSION:    5.15
  6247.      SUPERSEDES:    NA
  6248.  
  6249.         SYMPTOM:    NA
  6250.  
  6251. ISSUE/PROBLEM
  6252.  
  6253.     Brequest version 5.x does not work properly with MAP ROOT drives. The reason for this is that Brequest converts filenames in the form of driveletter:path to server\vol:path.  This is done without regard to the portion of the path that is hidden by the MAP ROOT command.
  6254.  
  6255. SOLUTION
  6256.  
  6257.     Until Brequest is changed to accomodate MAP ROOT drives, the following workaround can be used.  A 3rd party program called BSETPATH.EXE can be loaded after Brequest, and will convert all filenames to the true full path before passing it on to Brequest.  It is unloaded when Brequest is unloaded.  BSETPATH.EXE can be found along with documentation on Compuserve, in the NOVLIB forum, LIB 16 in the file BSETPA.ZIP.
  6258.  
  6259.  
  6260.  
  6261.  
  6262. FYI:    When Preimage Files are Erased
  6263.                                      FYI
  6264.  
  6265. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6266.  
  6267.           TITLE:    When Preimage Files are Erased
  6268.    DOCUMENT ID#:    FYI.A.2026
  6269.            DATE:    05MAY92
  6270.         PRODUCT:    Btrieve (Client)
  6271. PRODUCT VERSION:    5.10a
  6272.      SUPERSEDES:    NA
  6273.  
  6274.         SYMPTOM:    NA
  6275.  
  6276. ISSUE/PROBLEM
  6277.  
  6278.     Since client versions of Btrieve have no way of knowing how many users have a particular file open, how does Btrieve determine when to erase the preimage file for a data file?
  6279.  
  6280. SOLUTION
  6281.  
  6282.     Btrieve erases the preimage file for a data file when the last close to the file occurs.  Btrieve determines the last close by trying to open the preimage file in exclusive mode.  If the open succeeds, Btrieve knows that this is the only handle to the preimage file.  Btrieve then erases the preimage file.  If the exclusive open fails, there are other handles to the preimage file, so it is not erased.
  6283.  
  6284.  
  6285.  
  6286.  
  6287. FYI:    Btrieve Status 80 - Conflict or Not?
  6288.                                      FYI
  6289.  
  6290. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6291.  
  6292.           TITLE:    Btrieve Status 80 - Conflict or Not?
  6293.    DOCUMENT ID#:    FYI.A.1926
  6294.            DATE:    04MAY92
  6295.         PRODUCT:    Btrieve for DOS
  6296. PRODUCT VERSION:    5.10a
  6297.      SUPERSEDES:    NA
  6298.  
  6299.         SYMPTOM:    Status 80 - Conflict Error
  6300.  
  6301. ISSUE/PROBLEM
  6302.  
  6303.     Using Btrieve for DOS 5.10a, if two users perform the following operations in the order shown, a status 80 is returned.
  6304.  
  6305.            USER1                       |       USER2
  6306.                                        |
  6307.       OPEN FILE - STATUS 0             |
  6308.                                        |    OPEN FILE - STATUS 0
  6309.       INSERT 'A111' - STATU            |
  6310.       GET EQUAL 'A111' - STATUS 0      |
  6311.                                        |    INSERT 'A222' - STATUS 0
  6312.                                        |    GET EQUAL 'A222' - STATUS 0
  6313.       UPDATE 'A111' - STATUS 80        |
  6314.  
  6315.     According to the structure of the Btrieve file, bytes 2 through 4 of the record are Key 0 (unique) and bytes 5 through 40 are Key 1 (duplicates allowed), and both keys are permanent.  Also, the total record size is 600 bytes and the page size is 1024, so only one record fits on each data page.
  6316.  
  6317.     Is this status 80 valid?
  6318.  
  6319. SOLUTION
  6320.  
  6321.     Yes, the status 80 is a valid return code.
  6322.  
  6323.     Normally, a status 80 is returned when a user reads a record, and before updating it, another user reads and updates the same record. In this case, the first user would be returned a status 80 on the attempted update.  When using Btrieve for DOS, the conflict checking occurs at a page level as opposed to the record level, meaning that the second user did not actually have to read and update the SAME record, but any record on the same page as the first user's record.
  6324.  
  6325.     Due to the way Btrieve handles duplicate keys, each record in this file has associated with it a set of pointers for Key 1; one pointer for the previous record with the same key value and one pointer for the next record with the same key value.  In the above example, both users inserted records with the same value for Key 1 (all null bytes).  Therefore, the second INSERT caused Btrieve to write to the duplicate pointers on both records.  In this respect, USER2's INSERT caused USER1's record to be modified after USER1 retrieve it, and therefore, Btrieve returned status 80 when USER1 tried to UPDATE that record.
  6326.  
  6327.     If, instead of INSERTing 'A111' and 'A222', the USERs would have inserted 'A1111' and 'A2222' (one extra '1' and one extra '2'), Key 1 on both records would have been different ('1' and '2'), the second insert would not have caused an update to the first record, and Btrieve would not have returned a status 80 to USER1's UPDATE.
  6328.  
  6329.     Status 80 as a result of a record's duplicate pointers being changed will only occur with client Btrieve, not with NetWare Btrieve.
  6330.  
  6331.     Although Btrieve programmers should be trapping for status 80s, we have found two workarounds for those that were not, and do not want to make major programming changes.
  6332.  
  6333.      1)    Create Key 1 as a supplemental index.  Duplicate pointers are treated differently for supplemental indexes than they are for permanent indexes, so this problem would not arise.
  6334.  
  6335.      2)    Do the GET EQUAL operation with a 200 bias (Single NoWait lock).  This will make Btrieve lock the logical record (record 1) while USER2 performs the INSERT.  Even though Btrieve still adjusts the duplicate pointers, it 'knows' that record 1 was locked and its contents could not have changed, so when USER1 issues the UPDATE, it is successful.
  6336.  
  6337.  
  6338.  
  6339.  
  6340. FYI:    Creating Data Dictionaries on Local Drives
  6341.                                      FYI
  6342.  
  6343. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6344.  
  6345.           TITLE:    Creating Data Dictionaries on Local Drives
  6346.    DOCUMENT ID#:    FYI.A.1924
  6347.            DATE:    04MAY92
  6348.         PRODUCT:    NetWare SQL
  6349. PRODUCT VERSION:    2.11a
  6350.      SUPERSEDES:    NA
  6351.  
  6352.         SYMPTOM:    NA
  6353.  
  6354. ISSUE/PROBLEM
  6355.  
  6356.     What happens when you try to create a data dictionary on a local drive, using the NetWare Btrieve requester and the NetWare SQL requester?
  6357.  
  6358. SOLUTION
  6359.  
  6360.     When the NetWare Btrieve requester for DOS (BREQUEST.EXE) is loaded at a workstation, and a Btrieve CREATE operation is performed to create a file on a local drive, a status 20 (Record Manager Inactive) is returned. This is expected since NetWare Btrieve can not access a local drive, and the requester is looking for local Btrieve (BTRIEVE.EXE) in memory in order to service the request.  Is this the same error returned when attempting to create a data dictionary (which consists of Btrieve files) on a local drive, using BREQUEST.EXE and the NetWare SQL requester (NSREQ.EXE)?
  6361.  
  6362.     If NSREQ is loaded at the workstation and XQLI is used to create a data dictionary on a local drive, status 2108 (Device Not Assigned to File Server) is returned.  This makes sense because the NetWare SQL engine running on the server is attempting an operation on a device that it has no control over.
  6363.  
  6364.     If BREQUEST and XQL.EXE are loaded at the workstation, and XQLI is used to create a data dictionary on a local drive, status 285 (Error Opening System Table) is returned.  This also makes sense, because NetWare Btrieve running on the server could not open the system tables for a device that it has no control over.
  6365.  
  6366.     The importance here is to note that different error codes are returned based upon different configurations.
  6367.  
  6368.     This testing was done on a NetWare 3.11 server using NetWare Btrieve 5.15, BREQUEST 5.16, NetWare SQL 2.11a, and NSREQ 2.11.
  6369.  
  6370.  
  6371.  
  6372.  
  6373. FYI:    Lazy Writing in OS/2 HPFS
  6374.                                      FYI
  6375.  
  6376. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6377.  
  6378.           TITLE:    Lazy Writing in OS/2 HPFS
  6379.    DOCUMENT ID#:    FYI.A.1925
  6380.            DATE:    01MAY92
  6381.         PRODUCT:    Btrieve OS/2
  6382. PRODUCT VERSION:    5.10
  6383.      SUPERSEDES:    NA
  6384.  
  6385.         SYMPTOM:    NA
  6386.  
  6387. ISSUE/PROBLEM
  6388.  
  6389.     How does one disable Lazy Writing, under the OS/2 HPFS (High Performance File System)?
  6390.  
  6391. SOLUTION
  6392.  
  6393.     The following lines should be inserted into the workstation's CONFIG.SYS file, BEFORE any DEVICE statements:
  6394.  
  6395.         ifs=c:\os2\hpfs.ifs /c:1024 /autocheck:c    /* c is the drive */
  6396.         run = c:\os2\cache.exe /lazy:off
  6397.  
  6398.     IFS stands for Installable File System.
  6399.  
  6400.  
  6401.  
  6402.  
  6403. FYI:    Xtrieve PLUS Worksheets and Lotus 123
  6404.                                      FYI
  6405.  
  6406. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6407.  
  6408.           TITLE:    Xtrieve PLUS Worksheets and Lotus 123
  6409.    DOCUMENT ID#:    FYI.A.2509
  6410.            DATE:    30APR92
  6411.         PRODUCT:    Xtrieve PLUS
  6412. PRODUCT VERSION:    4.10
  6413.      SUPERSEDES:    NA
  6414.  
  6415.         SYMPTOM:    Date appears as astericks.
  6416.  
  6417. ISSUE/PROBLEM
  6418.  
  6419.     When a 123 worksheet created by Xtrieve is opened using 123, the date fields display as all astericks.  This can be mistaken for garbage.  Lotus 123 is telling the user that the column-width is not large enough to display the data value.
  6420.  
  6421. SOLUTION
  6422.  
  6423.     Select worksheet/column-width/set-width and give the column more width.
  6424.  
  6425.     The dates should then display properly.
  6426.  
  6427.     Also, there are patches for Xtrieve PLUS version 4.01a and version 4.10 that fix problems with translating dates into Lotus 123 worksheets.
  6428.  
  6429.  
  6430.  
  6431.  
  6432. FYI:    Printing In Landscape Mode From Xtrieve 4.10
  6433.                                      FYI
  6434.  
  6435. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6436.  
  6437.           TITLE:    Printing In Landscape Mode From Xtrieve 4.10
  6438.    DOCUMENT ID#:    FYI.A.1923
  6439.            DATE:    30APR92
  6440.         PRODUCT:    Xtrieve PLUS
  6441. PRODUCT VERSION:    4.10
  6442.      SUPERSEDES:    NA
  6443.  
  6444.         SYMPTOM:    Printing Problems with a LaserJet
  6445.  
  6446. ISSUE/PROBLEM
  6447.  
  6448.     Following is the procedure to set up landscape printing in Xtrieve PLUS 4.10.
  6449.  
  6450. SOLUTION
  6451.  
  6452.     The SLATE utility provided with Xtrieve v4.10 has to be used for this purpose.  Start SLATE as follows:
  6453.  
  6454.     SLATE xtrieve.pdb If you workstation hangs immediately, there may be a conflict with the video device.  If this occurs, try the following:
  6455.  
  6456.     SLATE -V6 xtrieve.pdb
  6457.  
  6458.     This will bring up the SLATE Main Menu screen.
  6459.  
  6460.     Select "Add/Edit Devices (Ptr Connections)". This will bring up the SLATE Devices screen.  Cursor down to an unused line and type an unused number, e.g. 4001, and hit the ENTER key.  This will bring up the SLATE Device Data screen.  Select the following values for each prompt (use the down arrow key to move through the options):
  6461.  
  6462.     Dev. Code: 4001 (This will already be there.)
  6463.     Function: LandScape (Any other definition that may be appropriate.)
  6464.  
  6465.     Ptr Mfg: Hit the F9 key to see options.  Select one, e.g. Hewlett Packard.
  6466.  
  6467.     (Cannot define new printer manufacturers.)
  6468.     Ptr Type: Hit the F9 key to see options.  Select one, e.g. LaserJet II (LS)
  6469.  
  6470.     (LS specifies LandScape.)
  6471.     (Again, cannot define new printer types.)
  6472.  
  6473.     The options between the Ptr Type and the Paper Length (below) need not be changed.
  6474.  
  6475.       Paper Length: Change FROM 11.00 inches TO 8.50 inches.
  6476.       Paper Width: Change FROM 8.50 inches TO 11.00 inches.
  6477.       Top Margin: Use at least 0.25 inches.
  6478.       Bottom Margin: Use at least 0.25 inches.
  6479.  
  6480.     (Otherwise, when it gets to the bottom line, any additional lines that remain will not get printed on the next page but will get printed on top of the bottom line.)
  6481.  
  6482.     Left Margin: Any value (at least 0.5 inches would be fine).
  6483.     Right Margin: Any value (at least 0.5 inches would ne fine).
  6484.  
  6485.     Hit the F10 key to get to the SLATE Devices screen.  Hit F10 again to get to the SLATE Main Menu.  Hit F10 one more time to exit from SLATE.
  6486.     Next, start up Xtrieve PLUS v4.10.  Make sure the "Printers" switch is set to ON.  This can be done from the Configure/Switches menu.  From the Main Menu, go to the PRINT menu.  Select the DATABASE option and tell it the location of the XTRIEVE.PDB file that was used with SLATE to define the LandScape printing.  Select the PRINTER option and choose the proper printer.  NOTE (this applies also to the above procedure on SLATE): the Hewlett Packard III is not on these lists (there might be other printers also).  Choose the Hewlett Packard II (LS) - it works fine.  Finally, select the DEVICE option (from the PRINT menu) and choose the LandScape definition (this option will be the one that was used for the Function option in SLATE).
  6487.  
  6488.     This should allow Xtrieve to print in LandScape mode.
  6489.  
  6490.  
  6491.  
  6492.  
  6493. FYI:    Non-Certified Hardware Under NetWare v3.11
  6494.                                      FYI
  6495.  
  6496. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6497.  
  6498.           TITLE:    Non-Certified Hardware Under NetWare v3.11
  6499.    DOCUMENT ID#:    FYI.A.1037
  6500.            DATE:    30APR92
  6501.         PRODUCT:    NetWare Btrieve NLM
  6502. PRODUCT VERSION:    5.15
  6503.      SUPERSEDES:    NA
  6504.  
  6505.         SYMPTOM:    Dropped connection; server error "Running Polling Process"
  6506.  
  6507.  
  6508. ISSUE/PROBLEM
  6509.  
  6510.     A problem occurred with the following configuration: DELL model 433TS 486/33 server, running the Btrieve NLM, with a Thomas Conrad TCNS fiber optics card (connecting the backbone).  Another server on the backbone was using the Proteon SMC P1990 Token Ring card.  Workstations experienced connections being dropped sporatically, server utilization would jump up to 100% with only a couple of workstations making Btrieve calls, and on one occasion the server actually abended, but locked up in 386 debug and would not permit a core dump.
  6511.  
  6512. SOLUTION
  6513.  
  6514.     Verify that all hardware components are Novell approved.
  6515.  
  6516.  
  6517.  
  6518.  
  6519. FYI:    NetWare 2.2 Server Memory Requirement Formula
  6520.                                      FYI
  6521.  
  6522. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6523.  
  6524.           TITLE:    NetWare 2.2 Server Memory Requirement Formula
  6525.    DOCUMENT ID#:    FYI.A.1036
  6526.            DATE:    30APR92
  6527.         PRODUCT:    NetWare Btrieve VAP
  6528. PRODUCT VERSION:    5.15
  6529.      SUPERSEDES:    N/A
  6530.  
  6531.         SYMPTOM:    Server abends immediately after loading Btrieve VAP
  6532.  
  6533. ISSUE/PROBLEM
  6534.  
  6535.     If a NetWare 2.2 server does not have enough memory, and it is configured to load the Btrieve VAP, it may appear to successfully load and initialize Btrieve, but then immediately abend.  Below, is a formula from the NetWare 2.2 manual which can be used to help determining how much RAM the server will require when using the Btrieve VAP.
  6536.  
  6537.            (.005 X MB of disk storage) + 2MB for OS + 2MB if running VAPs
  6538.  
  6539.     So, suppose the server is equiped with a 300MB hard disk and you want to load the Btrieve VAP.  Your server would require a minimum of 5.5MB of RAM, as shown below:
  6540.  
  6541.            (.005 X 300) + 2 + 2 = 5.5MB of RAM
  6542.  
  6543. SOLUTION
  6544.  
  6545.     NA
  6546.  
  6547.  
  6548.  
  6549.  
  6550. FYI:    HPFS and Btrieve for OS/2 File Corruption
  6551.                                      FYI
  6552.  
  6553. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6554.  
  6555.           TITLE:    HPFS and Btrieve for OS/2 File Corruption
  6556.    DOCUMENT ID#:    FYI.A.2512
  6557.            DATE:    29APR92
  6558.         PRODUCT:    Btrieve for OS/2
  6559. PRODUCT VERSION:    5.10
  6560.      SUPERSEDES:    NA
  6561.  
  6562.         SYMPTOM:    Btrieve file corruption
  6563.  
  6564. ISSUE/PROBLEM
  6565.  
  6566.     Using the OS/2 High Performance File System (HPFS), Btrieve for OS/2 and CHKDSK can lead to Btrieve file corruption.  The corruption happens when the machine is rebooted.  Normally, CHKDSK automatically fixes any file system problems left from having rebooted, but when OS/2 is configured to us the HPFS, this is not occurring.  The file corruption caused by this problem may incude: overwritten pages in the file, truncated files, garbage inserted, or garbage appended.  The garbage would usually be in 512 byte blocks, since that corresponds to the page size for HPFS.  Also, the "garbage" may instead be information from a page from another Btrieve file. IBM has addressed these problems, but some people may still be using the HPFS without these fixes.
  6567.  
  6568.     OS/2 also provides a feature called the Lazy Writer.  This is a background writer and does not do synchronous writes to the disk.  Btrieve does not have a flag set when opening files to instruct the Lazy Writer to write the pages directly to disk.
  6569.  
  6570. SOLUTION
  6571.  
  6572.     IBM has addressed the HPFS problem, and has patches available.  Customers need to contact IBM for this fix.  There is currently no fix available for the Lazy Writer problem.
  6573.  
  6574.  
  6575.  
  6576.  
  6577. FYI:    OS/2 2.0 and Btrieve for OS/2
  6578.                                      FYI
  6579.  
  6580. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6581.  
  6582.           TITLE:    OS/2 2.0 and Btrieve for OS/2
  6583.    DOCUMENT ID#:    FYI.A.2420
  6584.            DATE:    29APR92
  6585.         PRODUCT:    Btrieve for OS/2
  6586. PRODUCT VERSION:    5.10
  6587.      SUPERSEDES:    NA
  6588.  
  6589.         SYMPTOM:    NA
  6590.  
  6591. ISSUE/PROBLEM
  6592.  
  6593.     Does the local Btrieve for OS/2 v5.10 (BTRCALLS.DLL) work with OS/2 version 2.0?
  6594.  
  6595. SOLUTION
  6596.  
  6597.     Yes, however, OS/2 v2.0 developers writing a 32-bit application or DLL to call the 16-bit BTRCALLS.DLL, will have to modify the interface slightly in order to alias the 32-bit pointer and integer parameters.  Macros are provided by the C/2 compiler to do this.
  6598.  
  6599.     Calling the 16-bit Btrieve for OS/2 v5.10 DLL is a simple matter of rewriting the BTRCALL() prototype.
  6600.  
  6601.     The current prototype for OS/2 v1.X is:
  6602.  
  6603.     extern int APIENTRY BTRCALL (USHORT, PSZ, PSZ, PUSHORT, PSZ, CHAR, UCHAR);
  6604.  
  6605.     The prototype for a 32-bit application or dll would be:
  6606.  
  6607.     extern SHORT APIENTRY16 BTRCALL (USHORT, UCHAR  _Far16 *,
  6608.         UCHAR  _Far16 *, USHORT  _Far16 *,
  6609.     UCHAR  _Far16 *, CHAR, UCHAR);
  6610.  
  6611.     Everything else is handled by the compiler and linker.  This is done using the IBM C Set/2.
  6612.  
  6613.     Btrieve for OS/2 applications written for OS/2 v1.X will run under OS/2  v2.0.
  6614.  
  6615.  
  6616.  
  6617.  
  6618. FYI:    Patch #26 for NetWare SQL 2.11
  6619.                                      FYI
  6620.  
  6621. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6622.  
  6623.           TITLE:    Patch #26 for NetWare SQL 2.11
  6624.    DOCUMENT ID#:    FYI.A.1855
  6625.            DATE:    29APR92
  6626.         PRODUCT:    NetWare SQL
  6627. PRODUCT VERSION:    2.11
  6628.      SUPERSEDES:    NA
  6629.  
  6630.         SYMPTOM:    NA
  6631.  
  6632. ISSUE/PROBLEM
  6633.  
  6634.     The description for Patch #26, included with the XQL/NetWare SQL 2.11 patches, reads as follows:
  6635.  
  6636.     26.  OPTIONAL
  6637.  
  6638.          XQL (DOS)
  6639.          XQL (OS2)
  6640.          NWSQL (VAP)
  6641.          NWSQL (NLM)
  6642.  
  6643.     This optional patch allows version 2.11 to use the European format of decimal comma instead of decimal point.
  6644.  
  6645.     If this patch is applied, will NetWare SQL distinguish between the European format and the American standard?  After further research, it has been found that if the patch is applied, the European format is the one that is recognize and used, the American format will NOT be used.  It is all or nothing!
  6646.  
  6647. SOLUTION
  6648.  
  6649.     NA
  6650.  
  6651.  
  6652.  
  6653.  
  6654. FYI:    InLine Assembly With WATCOM C/386
  6655.                                      FYI
  6656.  
  6657. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6658.  
  6659.           TITLE:    InLine Assembly With WATCOM C/386
  6660.    DOCUMENT ID#:    FYI.A.3149
  6661.            DATE:    28APR92
  6662.         PRODUCT:    Network C for NLMs
  6663. PRODUCT VERSION:    SDKb
  6664.      SUPERSEDES:    NA
  6665.  
  6666.         SYMPTOM:    NA
  6667.  
  6668. ISSUE/PROBLEM
  6669.  
  6670.     Previous versions of the WATCOM C/386 compiler did not support inline assembly code using assembly mnemonics; instead use the actual opcodes and operands in numeric format.
  6671.  
  6672. SOLUTION
  6673.  
  6674.     Starting with version C/386 9.0, inline assembly mnemonics can be used in
  6675.  
  6676.  
  6677.  
  6678.  
  6679. FYI:    Using the OS/2 Btrieve DLL With a DOS EXTENDER
  6680.                                      FYI
  6681.  
  6682. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6683.  
  6684.           TITLE:    Using the OS/2 Btrieve DLL With a DOS EXTENDER
  6685.    DOCUMENT ID#:    FYI.A.2508
  6686.            DATE:    28APR92
  6687.         PRODUCT:    Btrieve for OS/2
  6688. PRODUCT VERSION:    5.10
  6689.      SUPERSEDES:    NA
  6690.  
  6691.         SYMPTOM:    NA
  6692.  
  6693. ISSUE/PROBLEM
  6694.  
  6695.     The OS/2 Btrieve DLL can be used in a DOS environment running a DOS extender.  Phar Lap has a DOS extender which will run both OS/2 executables as well as OS/2 DLLs in DOS.  DOS applications written to use the Phar Lap 286 DOS extender can use the OS/2 Btrieve and XQL client DLLs directly, without running OS/2.  This environment should run OS/2 executables (text-mode) unmodified.
  6696.  
  6697. SOLUTION
  6698.  
  6699.     To accomplish this, make the following call:
  6700.  
  6701.     run286 -LOADDLL btrcalls.dll test.exe
  6702.  
  6703.     The "run286" command is the extender.  The DLL still checks for the BTRPARMS or XQLPARMS environment variable for initialization.
  6704.  
  6705.  
  6706.  
  6707.  
  6708. FYI:    .BIN for Micro Focus COBOL/2
  6709.                                      FYI
  6710.  
  6711. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6712.  
  6713.           TITLE:    .BIN for Micro Focus COBOL/2
  6714.    DOCUMENT ID#:    FYI.A.2025
  6715.            DATE:    28APR92
  6716.         PRODUCT:    Btrieve DOS 3.1
  6717. PRODUCT VERSION:    5.10a
  6718.      SUPERSEDES:    NA
  6719.  
  6720.         SYMPTOM:    NA
  6721.  
  6722. ISSUE/PROBLEM
  6723.  
  6724.     Some Micro Focus COBOL/2 users express the desire for a .BIN interface to Btrieve like was provided for their earlier compiler, Micro Focus COBOL, with MFXBTRV.BIN.  The current interfaces we provide, MF2BTRV.OBJ & CSUPPORT.OBJ, or COBRBTRV.OBJ, do not allow developers to take advantage of the COBOL/2 environment as a .BIN interface would.
  6725.  
  6726. SOLUTION
  6727.  
  6728.     As a current solution, MFXBTRV.BIN can be used with Micro Focus COBOL/2.  The only requirement is that the parameters that are defined as COMP-5 (byte swapped Intel integer) type with the other interfaces, be defined as COMP-0 (NON-byte swapped integer) with MFXBTRV.BIN.  The exception to this is the integers used in the data buffer on extended operations; they should be defined as COMP-5.
  6729.  
  6730.  
  6731.  
  6732.  
  6733. FYI:    Extended Operations With MFXBTRV.BIN
  6734.                                      FYI
  6735.  
  6736. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6737.  
  6738.           TITLE:    Extended Operations With MFXBTRV.BIN
  6739.    DOCUMENT ID#:    FYI.A.2024
  6740.            DATE:    28APR92
  6741.         PRODUCT:    Btrieve DOS 3.1
  6742. PRODUCT VERSION:    5.10a
  6743.      SUPERSEDES:    NA
  6744.  
  6745.         SYMPTOM:    Status 62 - Incorrect Desriptor
  6746.  
  6747. ISSUE/PROBLEM
  6748.  
  6749.     Micro Focus COBOL does not support the COMP-5 (Intel byte swapped integer) type.  The COMP-5 type was not supported until their latest compiler release, Micro Focus COBOL/2.  MF COBOL only supported the COMP-0 (NON-byte swapped integer) type.  This is why the MFXBTRV.BIN interface, for use with MF COBOL requires that the function, status, data length, and key number be defined as COMP-0. Since Btrieve is expecting byte swapped integers, MFXBTRV.BIN swaps the bytes of the COMP-0 values before passing them to Btrieve.
  6750.  
  6751.     The problem with Extended operations is that they require byte swapped integers embedded within the data buffer.  The extended get operations, for example, require an extractor made up of byte swapped integers specifying the number of records, fields, etc to retrieve.  These integers are not swapped by the interface.  The result is that the extended operations will not work unless these integers in the data buffer are swapped before being passed to MFXBTRV.BIN, and usually a status 62 - incorrect descriptor, will be returned.
  6752.  
  6753. SOLUTION
  6754.  
  6755.     For extended operations to function correctly, all integers defined as COMP-0 that are passed in the data buffer must be byte-swapped manually by the application before the call to Btrieve.  If this is done, the extended operations complete successfully.
  6756.  
  6757.  
  6758.  
  6759.  
  6760. FYI:    Realia COBOL and the COBRBTRV Interface
  6761.                                      FYI
  6762.  
  6763. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6764.  
  6765.           TITLE:    Realia COBOL and the COBRBTRV Interface
  6766.    DOCUMENT ID#:    FYI.A.2023
  6767.            DATE:    28APR92
  6768.         PRODUCT:    Btrieve DOS 3.1
  6769. PRODUCT VERSION:    5.10a
  6770.      SUPERSEDES:    NA
  6771.  
  6772.         SYMPTOM:    NA
  6773.  
  6774. ISSUE/PROBLEM
  6775.  
  6776.     The INTRFACE.DOC file shipped with Btrieve for DOS version 5.10a states that the COBRBTRV.OBJ interface can be used with Realia COBOL as well as with Micro Focus/2.  The fact is that COBRBTRV does not work with Realia Cobol.
  6777.  
  6778. SOLUTION
  6779.  
  6780.     Use REAXBTRV.OBJ when compiling a Btrieve application with Realia Cobol version 3.x or less and use the REALBT.ZIP interface in NOVLIB when using Realia Cobol version 4.x.
  6781.  
  6782.  
  6783.  
  6784.  
  6785. FYI:    WINSTART.BAT To Start BREQUEST
  6786.                                      FYI
  6787.  
  6788. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6789.  
  6790.           TITLE:    WINSTART.BAT To Start BREQUEST
  6791.    DOCUMENT ID#:    FYI.A.2022
  6792.            DATE:    28APR92
  6793.         PRODUCT:    NetWare Btrieve NLM
  6794. PRODUCT VERSION:    5.15
  6795.      SUPERSEDES:    NA
  6796.  
  6797.         SYMPTOM:    NA
  6798.  
  6799. ISSUE/PROBLEM
  6800.  
  6801.     A problem that exists with the Btrieve requester for Windows is that at the same time, from the same workstation, DOS applications that use Btrieve cannot be run in a DOS session at the same time that a Windows application using the requester is run.  The reason for this is that to access the requester from a Windows application, BREQUEST.EXE must be loaded before starting Windows, but to run a DOS application using Brequest, BREQUEST.EXE must be run in each DOS session.  But, if BREQUEST.EXE is loaded before starting Windows, it cannot be loaded again in a DOS session.
  6802.  
  6803. SOLUTION
  6804.  
  6805.     A solution to this problem is to use WINSTART.BAT to start BREQUEST.EXE for use with the Windows requester.  WINSTART.BAT is a batch file that Windows runs automatically when it is started in 386 enhanced mode.  The programs that are started from within the WINSTART.BAT file are loaded in enhanced mode and are available to Windows applications, but not to DOS sessions started in Windows.  If Brequest is loaded in WINSTART.BAT, it can then be loaded again in a DOS session.  To load Brequest this way, create the WINSTART.BAT file in the Windows directory and put the line BREQUEST /r:32 (or whatever parameters are required) in it.
  6806.  
  6807.  
  6808.  
  6809.  
  6810. FYI:    Key Buffer Validation With Btrieve for Windows and OS/2
  6811.                                      FYI
  6812.  
  6813. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6814.  
  6815.           TITLE:    Key Buffer Validation With Btrieve for Windows and OS/2
  6816.    DOCUMENT ID#:    FYI.A.2021
  6817.            DATE:    28APR92
  6818.         PRODUCT:    Btrieve for Windows, Btrieve for OS/2
  6819. PRODUCT VERSION:    5.10
  6820.      SUPERSEDES:    NA
  6821.  
  6822.         SYMPTOM:    Invalid key buffer and status 1015
  6823.  
  6824. ISSUE/PROBLEM
  6825.  
  6826.     Local Btrieve for Windows will validate pointers when using the tracefile= <filename> in the [Btrieve] paragraph of WIN.INI.  When using the requester for Windows, chkparms=yes in the [BrequestDPMI] paragraph will validate pointers.  Btrieve for OS/2 will validate pointers when the environment variable BTRPARMSCHK=YES is set.
  6827.  
  6828.     When validating pointers with Btrieve, Btrieve will validate the pointer parameters passed in for read/write access over certain ranges.  If the pointers passed to Btrieve do not have access to memory specified by the pointers, a status 1015 will be returned, and in the case of using the tracefile= method with Btrieve for Windows, a message in your tracefile, 'INVALID POINTER parameter #?'. Where the ? would be 1-4 referring to the position block, data buffer, data buffer length, and key buffer respectively.
  6829.  
  6830.     The point to be aware of is that the key buffer parameter is always evaluated for the maximum number of bytes, 255, regardless of what the key buffer length parameter is set to.  So, to use pointer validation effectively, allocate the key buffer parameter as a pointer to a block of 255 bytes.
  6831.  
  6832. SOLUTION
  6833.  
  6834.     NA
  6835.  
  6836.  
  6837.  
  6838.  
  6839. FYI:    VIEW.DDF on Different Server
  6840.                                      FYI
  6841.  
  6842. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6843.  
  6844.           TITLE:    VIEW.DDF on Different Server
  6845.    DOCUMENT ID#:    FYI.A.2020
  6846.            DATE:    28APR92
  6847.         PRODUCT:    NetWare SQL
  6848. PRODUCT VERSION:    2.11
  6849.      SUPERSEDES:    NA
  6850.  
  6851.         SYMPTOM:    NA
  6852.  
  6853. ISSUE/PROBLEM
  6854.  
  6855.     The VIEW.DDF dictionary file is different from the other dictionary files in that it can reside on a different server.  All other dictionary files must reside on the same server running NetWare SQL, while VIEW.DDF can reside on a separate server running only NetWare Btrieve.
  6856.  
  6857.     In the future, if RI is defined on the dictionary files, then of course, this will not be possible, but for now it will work.
  6858.  
  6859. SOLUTION
  6860.  
  6861.     NA
  6862.  
  6863.  
  6864.  
  6865.  
  6866. FYI:    Btrieve File Corruption On NetWare 3.11
  6867.                                      FYI
  6868.  
  6869. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6870.  
  6871.           TITLE:    Btrieve File Corruption On NetWare 3.11
  6872.    DOCUMENT ID#:    FYI.A.2019
  6873.            DATE:    28APR92
  6874.         PRODUCT:    NetWare Btrieve NLM
  6875. PRODUCT VERSION:    5.15
  6876.      SUPERSEDES:    NA
  6877.  
  6878.         SYMPTOM:    Btrieve file corruption on NetWare 3.11; Btrieve status 2
  6879.  
  6880. ISSUE/PROBLEM
  6881.  
  6882.     There is a problem with NetWare version 3.11 that causes Btrieve files to become corrupt.  A description of the problem follows:
  6883.  
  6884.     A NetWare v3.11 problem exists for Btrieve files with page sizes that are not 512 bytes or multiples of 1024 bytes.  The problem causes file corruption, and Btrieve returns Status Code 2 (I/O Error).  To avoid this problem, use one of the following page sizes: 512, 1024, 2048 or 4096.
  6885.  
  6886. SOLUTION
  6887.  
  6888.     Until a fix is available for NetWare, use one of the page sizes mentioned above.
  6889.  
  6890.  
  6891.  
  6892.  
  6893. FYI:    xDDFile and Status 88
  6894.                                      FYI
  6895.  
  6896. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6897.  
  6898.           TITLE:    xDDFile and Status 88
  6899.    DOCUMENT ID#:    FYI.A.1749
  6900.            DATE:    28APR92
  6901.         PRODUCT:    XQL for DOS
  6902. PRODUCT VERSION:    2.11
  6903.      SUPERSEDES:    NA
  6904.  
  6905.         SYMPTOM:    Status 88 - Incompatible Open Mode
  6906.  
  6907. ISSUE/PROBLEM
  6908.  
  6909.     The primitive function xDDFile performs many different functions, depending on which iOption parameter is specified in the call.  When iOption is set to 4, xDDFile attempts to read status information for a specified table in the dictionary, including the number of records and indexes in that table.  When this call is executed, XQL attempts to open the Btrieve data file corresponding to the specified table in ReadOnly mode.  However, if this Btrieve file is already open in accelerated mode (by the current XQL application, or by an XQL or Btrieve application running on a different workstation), the xDDFile function call will fail, and a status 88 "Incompatible Open Mode" will be returned.
  6910.  
  6911. SOLUTION
  6912.  
  6913.     There is currently no way to avoid this error under these circumstances.  However, the application can be written to trap for a status 88 as a special return code for this function, and when received, a message can be given to the user such as "This function is not available at this time."
  6914.  
  6915.  
  6916.  
  6917.  
  6918. FYI:    Watchdog Configuration
  6919.                                      FYI
  6920.  
  6921. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6922.  
  6923.           TITLE:    Watchdog Configuration
  6924.    DOCUMENT ID#:    FYI.A.1035
  6925.            DATE:    28APR92
  6926.         PRODUCT:    NetWare Btrieve
  6927. PRODUCT VERSION:    5.1x
  6928.      SUPERSEDES:    NA
  6929.         SYMPTOM:    Btrieve files left open on the server
  6930.  
  6931. ISSUE/PROBLEM
  6932.  
  6933.     Many times people have trouble with Btrieve files being left open due to an abnormal termination of a Btrieve application, usually caused by the workstation being rebooted in the middle of a Btrieve application.  If this happens, and the user at the workstation immediately logs back into the network, Bconsole will show the file as open.  However, when this happens, the NetWare watchdog is responsible for clearing such a session and releasing any file handles.  In addition, under NetWare 2.2 and 3.x, the watchdog is a configurable part of NetWare.
  6934.  
  6935. SOLUTION
  6936.  
  6937.     For a NetWare 3.x server, Watchdog parameters can be configured at the server console (or from a workstation running the RCONSOLE utility). From the server console, type 'SET <RETURN>' and then select 'Communications'.  Then select YES (or Y) for advanced configuration.  Several of the displayed parameters pertain to the Watchdog configuration, as explained below.
  6938.  
  6939.     Number Of Watchdog Packets: xx (shows current configuration value)
  6940.  
  6941.     Limits: 5 to 100
  6942.  
  6943.     Description:    The number of times the server will ask an inactive workstation if it is still attached to the file server before terminating the workstation's connection if no response has been received.
  6944.  
  6945.     Delay Between Watchdog Packets: xx.x seconds (shows current config value)
  6946.     Limits: 9.9 to 10 minutes 26.2 seconds
  6947.  
  6948.     Description:    Amount of time the server will wait for an inactive workstation to reply to a Watchdog packet, before asking the workstation again if it is still attaced to the file server.
  6949.  
  6950.     Delay Before First Watchdog Packet: x minutes xx.x seconds (shows config)
  6951.     Limits: 15.7 seconds to 20 minutes 52.3 seconds
  6952.  
  6953.     Description:    Amount of time the server will wait, without receiving a request from a workstation, before asking the workstation if it is still attached to the file server.
  6954.  
  6955.     For a NetWare 2.2 server, the following command can be entered at the server console prompt:
  6956.  
  6957.      WATCHDOG [START=n] [INTERVAL=n] [COUNT=n]
  6958.  
  6959.     where:
  6960.     START is the number of seconds the server will wait to check a user's new connection (Range: 15-1200; Default=300)
  6961.  
  6962.     INTERVAL is the number of seconds between watchdog packets (Range: 1-600;  Default=60)
  6963.  
  6964.     COUNT is the number of intervals after start before clearing an active connection (Range: 5-100; Default=10)
  6965.  
  6966.     For further information about these and other configuration parameters, refer to the manuals provided with NetWare.
  6967.  
  6968.  
  6969.  
  6970.  
  6971. FYI:    Btrieve VAP Fails When Loaded Along With UPS VAP
  6972.                                      FYI
  6973.  
  6974. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  6975.  
  6976.           TITLE:    Btrieve VAP Fails When Loaded Along With UPS VAP
  6977.    DOCUMENT ID#:    FYI.A.1034
  6978.            DATE:    28APR92
  6979.         PRODUCT:    NetWare Btrieve VAP
  6980. PRODUCT VERSION:    5.x
  6981.      SUPERSEDES:    NA
  6982.  
  6983.         SYMPTOM:    Workstation and server hang.
  6984.  
  6985. ISSUE/PROBLEM
  6986.  
  6987.     When running the UPS VAP from American Power Conversion in conjunction with the Btrieve VAP the two will eventually cause memory corruption on the server.  There are no system messages which indicate any problems reoccuring at all.  There are no error messages in the system error log.  The server will simply cease all operations and it must be rebooted.
  6988.  
  6989. SOLUTION
  6990.  
  6991.     Contact the American Power Conversion company and get their latest updated release of their VAP.  Reinstall it and resume normal operations.  There should be no further conflicts between it and the Btrieve VAP.
  6992.  
  6993.  
  6994.  
  6995.  
  6996. FYI:    DAL Syntax For Field Names Which Contain Spaces
  6997.                                      FYI
  6998.  
  6999. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7000.  
  7001.           TITLE:    DAL Syntax For Field Names Which Contain Spaces
  7002.    DOCUMENT ID#:    FYI.A.1033
  7003.            DATE:    28APR92
  7004.         PRODUCT:    NetWare SQL
  7005. PRODUCT VERSION:    3.0
  7006.      SUPERSEDES:    NA
  7007.  
  7008.         SYMPTOM:    "Error in line 1" returned from DALSVR
  7009.  
  7010. ISSUE/PROBLEM
  7011.  
  7012.     When trying to access field names that contain a blank from a DAL application, an "error in line 1" message will be returned by the DALSVR.NLM if the syntax is not correct.  Even if the particular field in question is on line 20 of the statement, the error will still state "error in line 1".  This error is returned even when using the default blank replacement character (^) in place of the blank in the field name.  In addition, there is no way to set the blank character to something besides the caret from a DAL client, nor can tables with field names containing blanks be created from a DAL client.
  7013.  
  7014. SOLUTION
  7015.  
  7016.     There is a special syntax supported by DAL that allows access to field names containing blanks.  Such fields must have the @ character placed before and after the field name, as well as using the ^ in place of the blanks.
  7017.  
  7018.     For example:
  7019.  
  7020.     The Appointments table, which is one of the sample data files included with NetWare SQL v3.0 consists of the following fields:
  7021.  
  7022.            ID                          Doctor
  7023.            Appointment Date            Code
  7024.            Appointment Time            Amount Paid
  7025.            AM/PM                       Date Paid
  7026.  
  7027.     Following is an example of the syntax required for a DAL client to access these fields:
  7028.  
  7029.            SELECT ID, @Appointment^Date@, @Appointment^Time@
  7030.            FROM Appointments;
  7031.  
  7032.     Note how the '@' symbol and '^' symbol are used for the field names which contain blanks.
  7033.  
  7034.  
  7035.  
  7036.  
  7037. FYI:    Using the Reset Function In an XQL Manager Application
  7038.                                      FYI
  7039.  
  7040. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7041.  
  7042.           TITLE:    Using the Reset Function In an XQL Manager Application
  7043.    DOCUMENT ID#:    FYI.A.1032
  7044.            DATE:    28APR92
  7045.         PRODUCT:    NetWare SQL
  7046. PRODUCT VERSION:    2.11
  7047.      SUPERSEDES:    NA
  7048.  
  7049.         SYMPTOM:    Status 265 "Invalid Session Identifier" on XQLlogin.
  7050.  
  7051. ISSUE/PROBLEM
  7052.  
  7053.     Trying to log back into a dictionary after an XQL application abnormally terminates without successfully performing a logout will return a status 265 "Invalid Session Identifier".  If the application uses the XQLLogin function to log into the dictionary, a session is established with the DDF files.  However, if the application abnormally terminates, or fails to perform an XQLLogout call successfully, the session is still active until either an XQLUTIL -RESET is performed, or XQL (or the NetWare SQL requester) is unloaded.  Since the XQLUTIL utility cannot be distributed with an application, either the developer must provide a utility that performs an xReset or XQLStop function, or if NetWare SQL is being used, the STOPNREQ utility provided with NetWare SQL can be used to unload the requester.  To unload the XQL TSR without such a utility would require the user to reboot the workstation.
  7054.  
  7055. SOLUTION
  7056.  
  7057.     In order to make sure any previous sessions are reset before attempting an XQLLogin call, it is a good idea for an application to perform a reset before the login call.  However, there is no Manager-level function call to perform a reset.  An application using Manager functions can use the xReset primitive function to execute a reset.  Since the Manager and Primitive functions require different interfaces, the application will need to incorporate the interface for the primitive functions in order to perform the xReset function.  In some development environments, it's possible to modify the Manager interface to include just the appropriate information needed in order to perform the xReset primitive. If this is the only primitive needed, it may be more efficient to do this rather than compiling in both entire interfaces.  For example, when developing in C, the prototype definition for xReset can be copied from the XQLPINTF.C file into the XQLMINTF.C file.  This will allow the application to make the xReset call and thus reset any active session with the DDFs for the current user.  The application may then proceed with performing the login.
  7058.  
  7059.  
  7060.  
  7061.  
  7062. FYI:    UAE With GetNextExtended
  7063.                                      FYI
  7064.  
  7065. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7066.  
  7067.           TITLE:    UAE With GetNextExtended
  7068.    DOCUMENT ID#:    FYI.A.2511
  7069.            DATE:    27APR92
  7070.         PRODUCT:    Btrieve for Windows, Btrieve for OS/2
  7071. PRODUCT VERSION:    5.10
  7072.      SUPERSEDES:    NA
  7073.  
  7074.         SYMPTOM:    Unrecoverable Application Error
  7075.  
  7076. ISSUE/PROBLEM
  7077.  
  7078.     Btrieve causes an Unrecoverable Application Error (UAE) in a Windows or OS/2 application when a GetNextExtended operation is attempted that should return a status 62.  This happens when using the Windows or OS/2 client Btrieve DLL, and if the user's data buffer is less than a certain length.  For Windows that length is 1251 bytes and for OS/2 it is 112 bytes.
  7079.  
  7080. SOLUTION
  7081.  
  7082.     Make sure to allocate a buffer longer than the length mentioned above before making the GetNextExtended call.
  7083.  
  7084.  
  7085.  
  7086.  
  7087. FYI:    Great Plains Software and Xtrieve
  7088.                                      FYI
  7089.  
  7090. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7091.  
  7092.           TITLE:    Great Plains Software and Xtrieve
  7093.    DOCUMENT ID#:    FYI.A.2507
  7094.            DATE:    27APR92
  7095.         PRODUCT:    Xtrieve
  7096. PRODUCT VERSION:    3.02
  7097.      SUPERSEDES:    NA
  7098.  
  7099.         SYMPTOM:    NA
  7100.  
  7101. ISSUE/PROBLEM
  7102.  
  7103.     Great Plains Accounting software ships with Xtrieve version 3.02 bundled in the package.  This version of Xtrieve was specially created for Great Plains.  It is strictly for reporting purposes and has no update or delete capabilities 
  7104.  
  7105.     Great Plains has the Xtrieve source for this special version of Xtrieve which they bundle with their product.  As such, Great Plains is responsible for supporting this Xtrieve.
  7106.  
  7107. SOLUTION
  7108.  
  7109.     NA
  7110.  
  7111.  
  7112.  
  7113.  
  7114. FYI:    Using NetWare SQL In A Multi-Server Environment
  7115.                                      FYI
  7116.  
  7117. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7118.  
  7119.           TITLE:    Using NetWare SQL In A Multi-Server Environment
  7120.    DOCUMENT ID#:    FYI.A.1748
  7121.            DATE:    27APR92
  7122.         PRODUCT:    NetWare SQL 386 NLM
  7123. PRODUCT VERSION:    2.11
  7124.      SUPERSEDES:    NA
  7125.  
  7126.         SYMPTOM:    Status 2103 - NetWare SQL Not Loaded
  7127.  
  7128. ISSUE/PROBLEM
  7129.  
  7130.     Can a NetWare SQL application be run from a server that does not have NetWare SQL loaded, if the application attempts to use a dictionary on a different server that does have NetWare SQL loaded?
  7131.  
  7132. SOLUTION
  7133.  
  7134.     The answer depends on the network configuration.  When NetWare SQL is loaded on a particular server, the communications manager (NSSPXCOM.NLM) advertises its presence across the network.  However, depending on the LAN configuration, all servers might not "see" the server advertising NetWare SQL.  The server running the NetWare SQL application must have a bindery entry for NSSPXCOM running on the target server.  If this bindery entry is not present, the application will receive an error 2103 - NetWare SQL Not Loaded on the xLogin or XQLLogin function call.
  7135.  
  7136.     In addition, the sDDPath parameter passed to xLogin or XQLLogin can specify either \\Server\Volume:Path or Drive:Path in order to access a different server.  However, the first syntax does not work with the 2.11 version of the NetWare SQL requester (NSREQ[S]).  Both methods are supported with the 2.12a or later version of the requester.
  7137.  
  7138.  
  7139.  
  7140.  
  7141. FYI:    Report Executive Multiple-Line Restrictions
  7142.                                      FYI
  7143.  
  7144. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7145.  
  7146.           TITLE:    Report Executive Multiple-Line Restrictions
  7147.    DOCUMENT ID#:    FYI.A.2418
  7148.            DATE:    24APR92
  7149.         PRODUCT:    Report Executive
  7150. PRODUCT VERSION:    4.01
  7151.      SUPERSEDES:    NA
  7152.  
  7153.         SYMPTOM:    Status 221 - Invalid Syntax for Expression or Restriction
  7154.  
  7155. ISSUE/PROBLEM
  7156.  
  7157.     Page 2-17 of the "Report Executive User's Manual" says, "The restrict expression can span multiple lines."  However, a status 221 (Invalid Syntax for Expression or Restriction) is returned when the following restriction is placed in the description file:
  7158.  
  7159.     RESTRICT="Field1 = '69826' ||
  7160.     Field2 = '69829'"
  7161.  
  7162.     (|| is used instead of the OR operator)
  7163.  
  7164.     If the restriction is put on one line, it works.
  7165.  
  7166. SOLUTION
  7167.  
  7168.     As the manual states, a restriction CAN be put on more than one line.  However all lines after the line with the RESTRICT= keyword must begin with a space (or blank character).  The following restriction works properly:
  7169.  
  7170.     RESTRICT="Field1 = '69826' ||
  7171.     Field2 = '69829'"
  7172.  
  7173.     When processing a RESTRICT statement, the Report Executive strips off all blank characters at the end of each line, and tries to append the next line to the restriction.  If there is no space at the beginning of the next line, then ".. || Field2 .." will be read in as ".. ||Field2 ..", and a status 221 will be returned.  The Report Executive strips the blanks off of the end of each line because many text editors blank-pad the end of each line.
  7174.  
  7175.  
  7176.  
  7177.  
  7178. FYI:    MONITOR CPU Utilization Calculation Anomaly
  7179.                                      FYI
  7180.  
  7181. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7182.  
  7183.           TITLE:    MONITOR CPU Utilization Calculation Anomaly
  7184.    DOCUMENT ID#:    FYI.A.3148
  7185.            DATE:    22APR92
  7186.         PRODUCT:    NetWare Operating System
  7187. PRODUCT VERSION:    3.x
  7188.      SUPERSEDES:    NA
  7189.  
  7190.         SYMPTOM:    CPU Utilization jumps up when NLM is loaded
  7191.  
  7192. ISSUE/PROBLEM
  7193.  
  7194.     Recently, a problem with the MONITOR NLM's CPU Utilization was reported to Engineering stating that the percent utilization jumps up whenever an NLM is loaded.  If MONITOR is unloaded, then reloaded, the value would once again be calculated correctly.
  7195.  
  7196. SOLUTION
  7197.  
  7198.     Engineering reported the following:  This is how MONITOR works. Everytime an NLM is loaded, the utilization base is recalculated.  To get an accurate picture of the CPU utilization, you must refer to the histogram statistics. There are no plans to change the way this works.
  7199.  
  7200.  
  7201.  
  7202.  
  7203. FYI:    GetFileServerID() Does Not Return A Value Of -1
  7204.                                      FYI
  7205.  
  7206. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7207.  
  7208.           TITLE:    GetFileServerID() Does Not Return A Value Of -1
  7209.    DOCUMENT ID#:    FYI.A.2940
  7210.            DATE:    22APR92
  7211.         PRODUCT:    Network C for NLMs
  7212. PRODUCT VERSION:    2.00
  7213.      SUPERSEDES:    NA
  7214.  
  7215.         SYMPTOM:    fileServerID returned when not logged in to server.
  7216.  
  7217. ISSUE/PROBLEM
  7218.  
  7219.     When calling the GetFileServerID() API, if the NLM is not logged in to the named file server, the fileServerID should return a value of -1.
  7220.  
  7221.     However, the following sequence: 
  7222.  
  7223.         LoginToFileServer()
  7224.          GetFileServerID()
  7225.          LogoutFromFileServer()
  7226.          GetFileServerID()
  7227.  
  7228.     will return a valid fileServerID instead of a -1.  According to the documentation, the fileServerID received should be -1 when the NLM is not logged in.
  7229.  
  7230. SOLUTION
  7231.  
  7232.     Currently, there is no workaround.
  7233.  
  7234.  
  7235.  
  7236.  
  7237. FYI:    Accessing a Btrieve File From a Dos Box Under Windows 3.1.
  7238.                                      FYI
  7239.  
  7240. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7241.  
  7242.           TITLE:    Accessing a Btrieve File From a Dos Box Under Windows 3.1.
  7243.    DOCUMENT ID#:    FYI.A.2937
  7244.            DATE:    22APR92
  7245.         PRODUCT:    Btrieve for DOS
  7246. PRODUCT VERSION:    5.10a
  7247.      SUPERSEDES:    NA
  7248.  
  7249.         SYMPTOM:    Status 2 under a Windows 3.1 DOS Box
  7250.  
  7251. ISSUE/PROBLEM
  7252.  
  7253.     When trying to access a Btrieve file from a Dos Box under Standard Mode of Windows 3.1, a Btrieve status 2 (I/O Error) may occur.  This can be eliminated by loading the TBMI2.COM file before loading Windows 3.1. This TBMI2.COM file is supplied with Windows 3.1 and eliminates the need for loading TASKID.COM when using the TBMI2.COM file as was done in previous versions.
  7254.  
  7255. SOLUTION
  7256.  
  7257.     NA
  7258.  
  7259.  
  7260.  
  7261.  
  7262. FYI:    CLIB_OPT Parsing Parameters Incorrectly
  7263.                                      FYI
  7264.  
  7265. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7266.  
  7267.           TITLE:    CLIB_OPT Parsing Parameters Incorrectly
  7268.    DOCUMENT ID#:    FYI.A.3147
  7269.            DATE:    21APR92
  7270.         PRODUCT:    Network C for NLMs
  7271. PRODUCT VERSION:    SDKb
  7272.      SUPERSEDES:    NA
  7273.  
  7274.         SYMPTOM:    Can't login to server AND set current directory
  7275.  
  7276. ISSUE/PROBLEM
  7277.  
  7278.     Mixing the /S and /P CLIB_OPT parameters when loading an NLM will not yield the correct results.  Since /S (login to server) is processed after /P (set current directory), whatever is set with /P is simply overridden when /S is processed.
  7279.  
  7280. SOLUTION
  7281.  
  7282.     Currently no workaround, other than doing the login and chdir within the NLM, rather than using CLIB_OPT.
  7283.  
  7284.  
  7285.  
  7286.  
  7287. FYI:    LoginToFileServer() and Return Code 223
  7288.                                      FYI
  7289.  
  7290. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7291.  
  7292.           TITLE:    LoginToFileServer() and Return Code 223
  7293.    DOCUMENT ID#:    FYI.A.3146
  7294.            DATE:    21APR92
  7295.         PRODUCT:    Network C for NLMs
  7296. PRODUCT VERSION:    SDKb
  7297.      SUPERSEDES:    NA
  7298.  
  7299.         SYMPTOM:    Cannot login after password expires
  7300.  
  7301. ISSUE/PROBLEM
  7302.  
  7303.     When attempting to login to a server with a user account that has an expired password, CLib will not handle this properly, and execute a logout even though there were grace logins still available.  Normally, a return code of 223 (ERR_PASSWORD_EXPIRED) AND a successful login would be expected.
  7304.  
  7305. SOLUTION
  7306.  
  7307.     Currently, the only solution is to change the password, so that it is no longer expired.
  7308.  
  7309.  
  7310.  
  7311.  
  7312. FYI:    ScanFileEntry() Problems
  7313.                                      FYI
  7314.  
  7315. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7316.  
  7317.           TITLE:    ScanFileEntry() Problems
  7318.    DOCUMENT ID#:    FYI.A.2660
  7319.            DATE:    21APR92
  7320.         PRODUCT:    NetWare C Interface DOS
  7321. PRODUCT VERSION:    1.2
  7322.      SUPERSEDES:    NA
  7323.  
  7324.         SYMPTOM:    ScanFileEntry for NW 2.x
  7325.  
  7326. ISSUE/PROBLEM
  7327.  
  7328.     The API ScanFileEntry() has never worked for NetWare 2.x from the C-Interface for DOS version 1.2.  This API attempts to make both NetWare 3.x specific and NetWare 2.x specific NCP calls.  The NetWare 2.x NCP was to intended to be identical to the ScanFileInformation() API, although several problems are evident in the source.
  7329.  
  7330. SOLUTION
  7331.  
  7332.     The following modifications may be made to the SCFILE.C file in the CLIENT directory for the C Interface for DOS version 1.2:
  7333.        if (!isV3)
  7334.        {
  7335.            /*---------  Send out the package for a 286 request -------*/
  7336.  
  7337.             :
  7338.             :
  7339.             memmove( &requestBuff[8], searchPath, searchLength );
  7340.  
  7341.             /* MODIFICATIONS required for 286 NCP to function correctly */
  7342.  
  7343.             *(WORD *)&requestBuff[0] = searchLength + 6;
  7344.             *(WORD *)&replyBuff[0]   = 94;
  7345.             replyLength = 94;
  7346.  
  7347.             /**** end of changes *****/
  7348.  
  7349.             /*...send the 286 NCP...*/
  7350.             ccode = _NCPConnRequest( serverConnID, 0x17, requestLength,
  7351.                              &requestBuff[0], replyLength, &replyBuff[2] );
  7352.        }
  7353.        :
  7354.        :
  7355.        if( !ccode )
  7356.          if( !isV3 )
  7357.           {
  7358.            /*----- Fill in the fileEntry according to 286 return values                  -----*/
  7359.  
  7360.            /* changed from LONG to WORD since only 2 bytes required for 286  */
  7361.  
  7362.             fileEntry->attributes = *( (WORD *)&replyBuff[18] );          :
  7363.             :
  7364.           }
  7365.          else
  7366.             :
  7367.             :
  7368.  
  7369.     With these small changes the ScanFileEntry works successfully for NetWare 2.x.
  7370.  
  7371.  
  7372.  
  7373.  
  7374. FYI:    OpenLocalSemaphore() returns LONG
  7375.                                      FYI
  7376.  
  7377. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7378.  
  7379.           TITLE:    OpenLocalSemaphore() returns LONG
  7380.    DOCUMENT ID#:    FYI.A.2939
  7381.            DATE:    16APR92
  7382.         PRODUCT:    Network C for NLMs
  7383. PRODUCT VERSION:    2.00
  7384.      SUPERSEDES:    NA
  7385.  
  7386.         SYMPTOM:    NA
  7387.  
  7388. ISSUE/PROBLEM
  7389.  
  7390.     The NetWare Loadable Module Library Reference Volume I, page 19-61 has a small example at the bottom of the page.  The example shows that the OpenLocalSemaphore() function returns a completionCode which is declared as an int data type.  The completionCode, however, MUST instead be declared as a LONG data type.
  7391.  
  7392. SOLUTION
  7393.  
  7394.     NA
  7395.  
  7396.  
  7397.  
  7398.  
  7399. FYI:    Converting Decimal Numbers to Binary Strings in BASIC
  7400.                                      FYI
  7401.  
  7402. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7403.  
  7404.           TITLE:    Converting Decimal Numbers to Binary Strings in BASIC
  7405.    DOCUMENT ID#:    FYI.A.2113
  7406.            DATE:    15APR92
  7407.         PRODUCT:    Btrieve
  7408. PRODUCT VERSION:    ALL
  7409.      SUPERSEDES:    NA
  7410.  
  7411.         SYMPTOM:    NA
  7412.  
  7413. ISSUE/PROBLEM
  7414.  
  7415.     When developing Btrieve applications in MicroSoft BASIC, the need to perform BIT manipulation may arise from time to time.  An example of this would be extracting file information from the return data buffer on a Btrieve STAT operation.
  7416.  
  7417. SOLUTION
  7418.  
  7419.     The following piece of BASIC code will demonstrate how to build a string of binary information when given a decimal number.  This string can then be parsed to extract the appropriate bit information.
  7420.  
  7421.      Bin$=""                               'Initialize the string
  7422.      INPUT"Decimal number = ";Decimal      'obtain the decimal number
  7423.      FOR i = 14 TO 0 STEP -1               'Positive numbers only
  7424.       pow2 = 2^i
  7425.       IF Decimal >= pow2 THEN
  7426.          Decimal = Decimal - pow2
  7427.          Bin$ = Bin$ + "1"
  7428.       ELSE
  7429.          Bin$ = Bin$ + "0"
  7430.       END IF
  7431.      NEXT i
  7432.      PRINT"Binary String = ";Bin$
  7433.  
  7434.  
  7435.  
  7436.  
  7437. FYI:    Borland C++ and Btrieve
  7438.                                      FYI
  7439.  
  7440. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7441.  
  7442.           TITLE:    Borland C++ and Btrieve
  7443.    DOCUMENT ID#:    FYI.A.1872
  7444.            DATE:    15APR92
  7445.         PRODUCT:    Btrieve for Windows
  7446. PRODUCT VERSION:    5.10
  7447.      SUPERSEDES:    NA
  7448.  
  7449.        SYMPTOM:    NA
  7450.  
  7451. ISSUE/PROBLEM    
  7452.  
  7453.     Name Mangling is an attribute of the Borland C++ compiler.  Simply stated, name mangling allows multiple definitions of functions within an application.  Name mangling is documented on page 34 of the Borland C++ Programmer's Guide, version 2.0.
  7454.  
  7455.     For the Btrieve programmer using the WBTRINTF.C file supplied with the Btrieve for Windows Development Kit version 5.10, it can cause some havoc.  When the program is linked, unresolved externals can appear.  The linker may return: unresolved external btrv().  It can also be expected to return all the functions defined in the C file in lower case.
  7456.  
  7457.     According to the way the Btrieve prototypes and functions are written there is not a lower case btrv().  Why would the linker think that the function btrv() should be defined somewhere?
  7458.  
  7459.     What has happened is that the C file was compiled as a C++ file and consequently name mangling occurred on the BTRV function and every other function defined in the DLL.
  7460.  
  7461. SOLUTION    
  7462.  
  7463.     To stop name mangling from occurring, a compiler directive can be set to treat functions as a regular C function if the files are being compiled as C++ files by default.
  7464.  
  7465.     The directive is:
  7466.  
  7467.      ifdef __cplusplus
  7468.      extern "C" {
  7469.      endif
  7470.  
  7471.      ifdef __cplusplus
  7472.      }
  7473.      endif
  7474.  
  7475.     Everything between the two statements will be treated as standard C functions and name mangling will not be performed.  This means that the function's prototypes could be defined in a series of include files.  Those files could be placed between the compiler directives.
  7476.  
  7477.     For example, WBTRV.H could be included between the directives and then the function BTRV would not be mangled by the compiler.  There are multiple ways to implement the directive and there is not a right or wrong way.  The main thing is to understand that the compiler will mangle function definitions if the directive is not used.
  7478.  
  7479.  
  7480.  
  7481.  
  7482. FYI:    Status 94 - Permission Error
  7483.                                      FYI
  7484.  
  7485. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7486.  
  7487.           TITLE:    Status 94 - Permission Error
  7488.    DOCUMENT ID#:    FYI.A.1859
  7489.            DATE:    15APR92
  7490.         PRODUCT:    Btrieve for Windows
  7491. PRODUCT VERSION:    5.10
  7492.      SUPERSEDES:    NA
  7493.  
  7494.         SYMPTOM:    Status 94
  7495.  
  7496. ISSUE/PROBLEM
  7497.  
  7498.     A status 94 indicates that a user cannot open a file due to some type of permission error.  The user indicates that they can open other files in the same directory just not the one receiving status 94, indicating that the user does have the appropriate NetWare rights for that directory.
  7499.  
  7500. SOLUTION
  7501.  
  7502.     Check to make sure that the file's name is being passed in as part of the path and filename.  A status of 94 can be returned if the pathname is missing the filename (i.e. only consists of the directory path) in the key buffer being passed to Btrieve.
  7503.  
  7504.      For example,
  7505.  
  7506.        \dir1\dir2\file.btr      => returns a status 0 on OPEN
  7507.        \dir1\dir2               => returns a status 94 on OPEN
  7508.  
  7509.  
  7510.  
  7511.  
  7512. FYI:    SetEntry()
  7513.                                      FYI
  7514.  
  7515. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7516.  
  7517.           TITLE:    SetEntry()
  7518.    DOCUMENT ID#:    FYI.A.3843
  7519.            DATE:    10APR92
  7520.         PRODUCT:    NetWare C Interface DOS
  7521. PRODUCT VERSION:    1.2
  7522.      SUPERSEDES:    NA
  7523.  
  7524.         SYMPTOM:    SetEntry() returns SUCCESSFUL but does not set attributes.
  7525.  
  7526. ISSUE/PROBLEM
  7527.  
  7528.     SetEntry() was not able to set the attributes for a directory, however, the return code was SUCCESSFUL.
  7529.  
  7530. SOLUTION
  7531.  
  7532.     SetEntry() requires a 'sequence' parameter which is the ID of the directory or file entry to be modified.  This sequence number should be obtained from ScanDirEntry() function.  GetDirEntry() also returns the same structure as ScanDirEntry(), however, the sequence number returned in the structure from GetDirEntry() is not valid.
  7533.  
  7534.  
  7535.  
  7536.  
  7537. FYI:    Realia COBOL 4.x Interface For XQL
  7538.                                      FYI
  7539.  
  7540. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7541.  
  7542.           TITLE:    Realia COBOL 4.x Interface For XQL
  7543.    DOCUMENT ID#:    FYI.A.3016
  7544.            DATE:    10APR92
  7545.         PRODUCT:    XQL
  7546. PRODUCT VERSION:    2.11
  7547.      SUPERSEDES:    NA
  7548.  
  7549.         SYMPTOM:    Status 0 returned even if function failed.
  7550.  
  7551. ISSUE/PROBLEM
  7552.  
  7553.     The Realia COBOL interface that shipped with XQL for DOS version 2.11 (COBXQLPR.OBJ or COBXQLMR.OBJ) does not work properly with version 4.x of Realia COBOL.  Status 0 is returned even when the function is not successful.
  7554.  
  7555. SOLUTION
  7556.  
  7557.     There will be a new interface for Realia COBOL v4.x available with NetWare SQL 3.0.
  7558.  
  7559.  
  7560.  
  7561.  
  7562. FYI:    HL3270CP Returns Invalid Label Reference
  7563.                                      FYI
  7564.  
  7565. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7566.  
  7567.           TITLE:    HL3270CP Returns Invalid Label Reference
  7568.    DOCUMENT ID#:    FYI.A.2836
  7569.            DATE:    09APR92
  7570.         PRODUCT:    Network C for NLMs
  7571. PRODUCT VERSION:    1.5
  7572.      SUPERSEDES:    NA
  7573.  
  7574.         SYMPTOM:    "Invalid Label Reference" when underscores are used
  7575.  
  7576. ISSUE/PROBLEM
  7577.  
  7578.     NetWare 3270 HLLAPI Command Processor (HL3270CP.EXE) v1.1.A returns "Invalid Label Reference" when underscores are used in the label of the Command List file.
  7579.  
  7580. SOLUTION
  7581.  
  7582.     This has been reported and expecting a fix in the next version of the Command Processor.
  7583.  
  7584.  
  7585.  
  7586.  
  7587. FYI:    NetWare 3270 API Function-17
  7588.                                      FYI
  7589.  
  7590. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7591.  
  7592.           TITLE:    NetWare 3270 API Function-17
  7593.    DOCUMENT ID#:    FYI.A.2835
  7594.            DATE:    09APR92
  7595.         PRODUCT:    Network C for NLMs
  7596. PRODUCT VERSION:    1.6
  7597.      SUPERSEDES:    NA
  7598.  
  7599.         SYMPTOM:    "Insufficient Buffer Pool" and "Control Program No Longer Resident" error
  7600.  
  7601. ISSUE/PROBLEM
  7602.  
  7603.     Function-17 (Perform Structured Field Operation) will return an error "Insufficient Buffer Pool" and "Control Program No Longer Resident" while copying data from the presentation space to the pre-defined application buffer.
  7604.  
  7605. SOLUTION
  7606.  
  7607.     Increase the stack and heap size in the Gateway configuration by loading GWCONFIG GWSERVER /D and increase the values in Internal Customization panel.
  7608.  
  7609.  
  7610.  
  7611.  
  7612. FYI:    GetEffectiveRights() Returns Invalid Rights
  7613.                                      FYI
  7614.  
  7615. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7616.  
  7617.           TITLE:    GetEffectiveRights() Returns Invalid Rights
  7618.    DOCUMENT ID#:    FYI.A.2834
  7619.            DATE:    09APR92
  7620.         PRODUCT:    Network C for DOS
  7621. PRODUCT VERSION:    1.2
  7622.      SUPERSEDES:    NA
  7623.  
  7624.         SYMPTOM:    GetEffectiveRights() returns Write rights erroneously
  7625.  
  7626. ISSUE/PROBLEM
  7627.  
  7628.     The GetEffectiveRights() API returns with Write rights for the effective  rights of the directory even if Write rights for that directory do not exist.
  7629.  
  7630. SOLUTION
  7631.  
  7632.     There is no work around.
  7633.  
  7634.  
  7635.  
  7636.  
  7637. FYI:    mkdir() Incorrectly Sets errno
  7638.                                      FYI
  7639.  
  7640. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7641.  
  7642.           TITLE:    mkdir() Incorrectly Sets errno
  7643.    DOCUMENT ID#:    FYI.A.2833
  7644.            DATE:    09APR92
  7645.         PRODUCT:    Network C for NLMs
  7646. PRODUCT VERSION:    2.0b
  7647.      SUPERSEDES:    NA
  7648.  
  7649.         SYMPTOM:    errno incorrectly set to ENOENT.
  7650.  
  7651. ISSUE/PROBLEM
  7652.  
  7653.     When attempting to create a directory that already exists, mkdir() correctly returns a -1 but incorrectly sets errno to ENOENT (1-No such file or directory) instead of setting errno to EACCES (6-Permission Denied).  This has been tested on 3.11 server with and without the CLIB patches loaded; results are the same in both environments.
  7654.  
  7655. SOLUTION
  7656.  
  7657.     No workaround as of now.
  7658.  
  7659.  
  7660.  
  7661.  
  7662. FYI:    Bug fixes in HLLAPI v2.2.f.11
  7663.                                      FYI
  7664.  
  7665. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7666.  
  7667.           TITLE:    Bug fixes in HLLAPI v2.2.f.11
  7668.    DOCUMENT ID#:    FYI.A.2832
  7669.            DATE:    09APR92
  7670.         PRODUCT:    3270 Tools for DOS
  7671. PRODUCT VERSION:    1.5
  7672.      SUPERSEDES:    PTF-253
  7673.  
  7674.         SYMPTOM:    NA
  7675.  
  7676. ISSUE/PROBLEM
  7677.  
  7678.     PTF253.ZIP fixes the following problems:
  7679.  
  7680.     The current version of the HLLAPI 2.2.f.11 has fixed the problems with
  7681.     Pause, Find Field Length and Find Filed positon api's which were reported as bugs earlier.
  7682.  
  7683.     The inaccurate calculation of wait time by the Pause function is now fixed.
  7684.  
  7685.     Find Field Length function was returning an invalid field length for row 24 of the PS (presentation space).
  7686.  
  7687.     Find Field Position, was not returning a valid field position for the
  7688.     offset 1 which is a starting location of the PS.
  7689.  
  7690.  
  7691.  
  7692.  
  7693. FYI:    Desqview V.2.4 and IPXSendPacket()
  7694.                                      FYI
  7695.  
  7696. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7697.  
  7698.           TITLE:    Desqview V.2.4 and IPXSendPacket()
  7699.    DOCUMENT ID#:    FYI.A.3842
  7700.            DATE:    08APR92
  7701.         PRODUCT:    NetWare C Interface DOS
  7702. PRODUCT VERSION:    1.2
  7703.      SUPERSEDES:    NA
  7704.  
  7705.         SYMPTOM:    IPXSendPacket() fails if used from within Desqview.
  7706.  
  7707. ISSUE/PROBLEM
  7708.  
  7709.     If IPXSendPacket() is called from Desqview V.2.4, it returns 252 (INTERNET_PACKET_REQT_CANCELED).
  7710.  
  7711. SOLUTION
  7712.  
  7713.     Desqview v2.4 needs to be configured during its installation for IPX/SPX calls.  The installation program for Desqview v2.4 has an advanced setup option.  Select N (for Network) from the Advanced Setup and then select 'y' for the DVIPX.DVR which supports the Novell Netware IPX/SPX interface.  Then increase the Network Buffers from the default value of 8 to 10 in the same setup screen.  Save the configuration, and start Desqview again from the DOS prompt.
  7714.  
  7715.  
  7716.  
  7717.  
  7718. FYI:    Setting Show Dots On or Off From An Application
  7719.                                      FYI
  7720.  
  7721. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7722.  
  7723.           TITLE:    Setting Show Dots On or Off From An Application
  7724.    DOCUMENT ID#:    FYI.A.1653
  7725.            DATE:    08APR92
  7726.         PRODUCT:    NetWare System Calls
  7727. PRODUCT VERSION:    1.0
  7728.      SUPERSEDES:    NA
  7729.  
  7730.         SYMPTOM:    NA
  7731.  
  7732. ISSUE/PROBLEM
  7733.  
  7734.     Is there a way, after the shell is loaded, to change whether the "." and ".." entries show up in a directory?
  7735.  
  7736. SOLUTION
  7737.  
  7738.     The "." is usually referred to as the current directory and the ".." is usually referred to as the parent directory.  Many programs that allow you to traverse the directory tree rely on these dots showing up when they scan the directory to allow you to back up one directory level.  When the SHOW DOTS parameter is off, this becomes impossible.  Normally, the SHOW DOTS parameter is set by adding an entry to the shell.cfg (or net.cfg) file as follows:
  7739.  
  7740.       SHOW DOTS=ON
  7741.  
  7742.     or
  7743.  
  7744.       SHOW DOTS=OFF
  7745.  
  7746.     The problem with this method is that it requires the change to be made before the shell is loaded.
  7747.  
  7748.     To change this state programatically, make an INT 21h call as follows:
  7749.  
  7750.       On Entry:
  7751.          AX = E908h
  7752.          BL = 00h (SHOW DOTS=OFF)
  7753.               01h (SHOW DOTS=ON)
  7754.  
  7755.       On Return:
  7756.          BL = Previous setting
  7757.  
  7758.  
  7759.  
  7760.  
  7761. FYI:    Determining if NASI is Loaded
  7762.                                      FYI
  7763.  
  7764. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7765.  
  7766.           TITLE:    Determining if NASI is Loaded
  7767.    DOCUMENT ID#:    FYI.A.1319
  7768.            DATE:    08APR92
  7769.         PRODUCT:    NASI
  7770. PRODUCT VERSION:    3.0
  7771.      SUPERSEDES:    NA
  7772.  
  7773.         SYMPTOM:    NA
  7774.  
  7775. ISSUE/PROBLEM
  7776.  
  7777.     Here are the steps to determine if the NetWare Asychronous Services Interface (NASI) TSR is loaded.
  7778.  
  7779.      - Since NASI uses interrupt 6Bh, view the contents of the 2 words at offset 1ACh.
  7780.  
  7781.      - Go to the segment and offset plus three bytes (SEG:OFFSET+3) listed in the 2 word entry.
  7782.  
  7783.      - Compare the value of the next 4 bytes with the following value: NCSI If the values match, NASI is loaded.
  7784.  
  7785. SOLUTION
  7786.  
  7787.     NA
  7788.  
  7789.  
  7790.  
  7791.  
  7792. FYI:    Distinguishing Netware NASI from Network Products NCSI
  7793.                                      FYI
  7794.  
  7795. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7796.  
  7797.           TITLE:    Distinguishing Netware NASI from Network Products NCSI
  7798.    DOCUMENT ID#:    FYI.A.1318
  7799.            DATE:    08APR92
  7800.         PRODUCT:    NASI
  7801. PRODUCT VERSION:    3.0
  7802.      SUPERSEDES:    NA
  7803.  
  7804.          SYMPTOM:    NA
  7805.  
  7806. ISSUE/PROBLEM
  7807.  
  7808.     Novell's NASI was orginally acquired from Network Products Corporation.  Since that time, both companies offer the product, however, there are some differences which will not be discussed here.  Novell's TSR is called NASI and Network Products' TSR is called NCSI.  Both TSRs can be queried to determine if it is loaded in memory.  The signature string to look for is NCSI.  Both products actually return the same signature string.  With NetWare NASI v3.0, the signature string is followed by the letter 'A'.  Signature strings for prior versions of NASI were not discernable from the Network Product NCSI signature string.
  7809.  
  7810. SOLUTION
  7811.  
  7812.     NA
  7813.  
  7814.  
  7815.  
  7816.  
  7817. FYI:    Allocating Memory Below 16Meg With an NLM
  7818.                                      FYI
  7819.  
  7820. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7821.  
  7822.           TITLE:    Allocating Memory Below 16Meg With an NLM
  7823.    DOCUMENT ID#:    FYI.A.3711
  7824.            DATE:    07APR92
  7825.         PRODUCT:    Network C for NLMs
  7826. PRODUCT VERSION:    SDKb
  7827.      SUPERSEDES:    NA
  7828.  
  7829.         SYMPTOM:    NA
  7830.  
  7831. ISSUE/PROBLEM
  7832.  
  7833.     When using NetWare v3.11, if memory is allocated using the OS function AllocBufferBelow16Meg(), does the returned memory address need to be mapped to a data offset using the MapAbsoluteAddressToDataOffset() function?
  7834.  
  7835. SOLUTION
  7836.  
  7837.     No.  Previous versions of NetWare used different physical and logical memory address spaces, so it was often necessary to map an absolute address to a logical address (or vice versa).  When v3.11 came along, all of the complicated memory address mapping went away, so all physical and logical memory addresses are the same.  In fact, the MapAbsoluteAddressToDataOffset() function is really a dummy, included for backward compatibility; it just returns the address that is passed to it.
  7838.  
  7839.  
  7840.  
  7841.  
  7842. FYI:    CLIB.NLM tmpnam() doc error
  7843.                                      FYI
  7844.  
  7845. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7846.  
  7847.           TITLE:    CLIB.NLM tmpnam() doc error
  7848.    DOCUMENT ID#:    FYI.A.3841
  7849.            DATE:    06APR92
  7850.         PRODUCT:    Network C for NLMs
  7851. PRODUCT VERSION:    SDKb
  7852.      SUPERSEDES:    NA
  7853.  
  7854.         SYMPTOM:    NA
  7855.  
  7856. ISSUE/PROBLEM
  7857.  
  7858.     In the Alphabetical Listing of the CLIB.NLM functions in the Volume II of Netware Library Reference, the function tmpnam() is misprinted as tmpman(). There is no tmpman() function, and it should be tmpnam().
  7859.  
  7860. SOLUTION
  7861.  
  7862.     NA
  7863.  
  7864.  
  7865.  
  7866.  
  7867. FYI:    ScanUserSpaceRestrictions() Fails On Remote Server
  7868.                                      FYI
  7869.  
  7870. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7871.  
  7872.           TITLE:    ScanUserSpaceRestrictions() Fails On Remote Server
  7873.    DOCUMENT ID#:    FYI.A.3361
  7874.            DATE:    06APR92
  7875.         PRODUCT:    Network C for NLMs
  7876. PRODUCT VERSION:    20b
  7877.      SUPERSEDES:    NA
  7878.  
  7879.         SYMPTOM:    Missing disk restrictions.
  7880.  
  7881. ISSUE/PROBLEM
  7882.  
  7883.     ScanUserSpaceRestrictions does not return all of the objects with space restrictions if it is used against a remote 3.x file server.  The first twelve are returned, but subsequent calls only return one trustee.
  7884.  
  7885. SOLUTION
  7886.  
  7887.     NA
  7888.  
  7889.  
  7890.  
  7891.  
  7892. FYI:    Tracking Down Unreleased Memory In An NLM
  7893.                                      FYI
  7894.  
  7895. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7896.  
  7897.           TITLE:    Tracking Down Unreleased Memory In An NLM
  7898.    DOCUMENT ID#:    FYI.A.3145
  7899.            DATE:    06APR92
  7900.         PRODUCT:    Network C for NLMs
  7901. PRODUCT VERSION:    SDKb
  7902.      SUPERSEDES:    NA
  7903.  
  7904.         SYMPTOM:    Unreleased memory in NLM.
  7905.  
  7906. ISSUE/PROBLEM
  7907.  
  7908.     Often times, an NLM will display a message like: "Module did not release 1264 resources", or "Resource: Small memory allocations".  This usually implies that the NLM forgot to release some memory.  How can this memory be tracked down? 
  7909.  
  7910. SOLUTION
  7911.  
  7912.     Here's a method to determine which pointer or pointers were not properly freed.  It works on NetWare v3.11 with CLib v3.11:
  7913.  
  7914.            Drop into the Internal Debugger.
  7915.            Set a breakpoint exactly like this: 'b=malloc-4d+[dmalloc-9]'
  7916.            Run the NLM
  7917.  
  7918.     When the NLM exits, the debugger will be entered once for each unfreed pointer.  Once in the debugger, register EAX contains a pointer to the unfreed memory.
  7919.  
  7920.  
  7921.  
  7922.  
  7923. FYI:    NWSetFileServerDateAndTime() Missing in OS/2 SDK
  7924.                                      FYI
  7925.  
  7926. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7927.  
  7928.           TITLE:    NWSetFileServerDateAndTime() Missing in OS/2 SDK
  7929.    DOCUMENT ID#:    FYI.A.1317
  7930.            DATE:    06APR92
  7931.         PRODUCT:    NetWare OS/2 SDK
  7932. PRODUCT VERSION:    1.2
  7933.      SUPERSEDES:    NA
  7934.  
  7935.         SYMPTOM:    NA
  7936.  
  7937. ISSUE/PROBLEM
  7938.  
  7939.     The NetWare C for OS/2 SDK v1.2 does not contain a call to set the file server date and time.  This call will be available in a future release of the SDK, however, no time frame has been set.
  7940.  
  7941. SOLUTION
  7942.  
  7943.     NA
  7944.  
  7945.  
  7946.  
  7947.  
  7948. FYI:    Time Functions in Turbo C++ Compiler
  7949.                                      FYI
  7950.  
  7951. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7952.  
  7953.           TITLE:    Time Functions in Turbo C++ Compiler
  7954.    DOCUMENT ID#:    FYI.A.3840
  7955.            DATE:    03APR92
  7956.         PRODUCT:    NetWare C Interface DOS
  7957. PRODUCT VERSION:    1.22
  7958.      SUPERSEDES:    NA
  7959.  
  7960.         SYMPTOM:    Time returned is 1 hour ahead.
  7961.  
  7962. ISSUE/PROBLEM
  7963.  
  7964.     Time functions in Turbo C++ compiler version 1.0 return the incorrect time for the dates between April 1, 1992 and April 5, 1992.  The time returned is one hour ahead of the actual time.  The specific functions are time() and LocalTime().
  7965.  
  7966. SOLUTION
  7967.  
  7968.     This is only a problem in Turbo C++ compiler versions prior to version 3.0. The problem does not appear in the compiler versions 3.0 or higher.
  7969.  
  7970.  
  7971.  
  7972.  
  7973. FYI:    ChangeDirectoryEntry() Returns Error Code of 1
  7974.                                      FYI
  7975.  
  7976. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  7977.  
  7978.           TITLE:    ChangeDirectoryEntry() Returns Error Code of 1
  7979.    DOCUMENT ID#:    FYI.A.3144
  7980.            DATE:    03APR92
  7981.         PRODUCT:    Network C for NLMs
  7982. PRODUCT VERSION:    SDKb
  7983.      SUPERSEDES:    NA
  7984.  
  7985.         SYMPTOM:    Unknown return code from ChangeDirectoryEntry()
  7986.  
  7987. ISSUE/PROBLEM
  7988.  
  7989.     ChangeDirectoryEntry() returns 1 if any of the following conditions occur:
  7990.  
  7991.            1.    OwnerID is invalid
  7992.            2.    LastUpdatedID is invalid
  7993.            3.    LastArchivedID is invalid
  7994.            4.    maximumSpace is invalid, i.e. less than -1 or equal to 0x7FFFFFFF
  7995.  
  7996. SOLUTION
  7997.  
  7998.     This is simply a documentation oversight.
  7999.  
  8000.  
  8001.  
  8002.  
  8003. FYI:    How does Bconsole get its information?
  8004.                                      FYI
  8005.  
  8006. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8007.  
  8008.           TITLE:    How does Bconsole get its information?
  8009.    DOCUMENT ID#:    FYI.A.1858
  8010.            DATE:    03APR92
  8011.         PRODUCT:    NetWare Btrieve NLM
  8012. PRODUCT VERSION:    5.1x
  8013.      SUPERSEDES:    NA
  8014.  
  8015.         SYMPTOM:    How does Bconsole Get its information?
  8016.  
  8017. ISSUE/PROBLEM
  8018.  
  8019.     Bconsole gets most of its information from internal tables that are built in server memory.  There are no direct APIs to retrieve the same data from an external application.
  8020.  
  8021. SOLUTION
  8022.  
  8023.     NA
  8024.  
  8025.  
  8026.  
  8027.  
  8028. FYI:    Locks and Transactions
  8029.                                      FYI
  8030.  
  8031. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8032.  
  8033.           TITLE:    Locks and Transactions
  8034.    DOCUMENT ID#:    FYI.A.1857
  8035.            DATE:    03APR92
  8036.         PRODUCT:    Btrieve for DOS
  8037. PRODUCT VERSION:    5.10a
  8038.      SUPERSEDES:    NA
  8039.  
  8040.         SYMPTOM:    NA
  8041.  
  8042. ISSUE/PROBLEM
  8043.  
  8044.     Since Btrieve does not allow an application to lock a record on an insert call, how can an application be guaranteed to achieve a lock on a newly inserted record?  One possibility would be to issue a begin transaction operation, insert the record, and then retrieve it with a lock.  However, when the end transaction or abort transaction operation is issued, Btrieve releases any outstanding locks.
  8045.  
  8046. SOLUTION
  8047.  
  8048.     One possible solution would involve utilizing an extra 'field' (one byte would be sufficient) in each record which controls when a record can be locked by any user.  When this field is set, no other user can lock the record.  Newly inserted records would have this field set, so that only the application that just inserted it would be able to retrieve it with a lock.  Of course, this requires that the application be responsible for updating the record and resetting this field when appropriate so that the "lock" gets released.  This would also require that all other applications read the record and check this field before attempting to lock the record.
  8049.  
  8050.  
  8051.  
  8052.  
  8053. FYI:    The LVAR Data Type
  8054.                                      FYI
  8055.  
  8056. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8057.  
  8058.           TITLE:    The LVAR Data Type
  8059.    DOCUMENT ID#:    FYI.A.1854
  8060.            DATE:    03APR92
  8061.         PRODUCT:    NetWare SQL
  8062. PRODUCT VERSION:    2.11
  8063.      SUPERSEDES:    NA
  8064.  
  8065.         SYMPTOM:    NetWare SQL VAP abend; workstation memory overwrites.
  8066.  
  8067. ISSUE/PROBLEM
  8068.  
  8069.     Incorrect usage of the LVAR data type can cause the NetWare SQL VAP to abend the server.  With the NetWare SQL NLM or client XQL, workstation memory overwrites will occur, causing the application to hang or abort.  This can be reproduced by a series of calls that insert, modify and delete variable length
  8070.  
  8071.     records.  The problem is caused by the way the LVAR field is defined before the data is inserted or updated.  For example, suppose an LVAR with a maximum length of 300 is defined, and data is placed into the field as follows:
  8072.  
  8073.       1) The length word is set to 0x02.
  8074.       2) The next two bytes are set to 0x00.
  8075.       3) The rest of the 300 byte array is set to 0x20 (spaces).
  8076.  
  8077.     The result of these steps is a variable length record of at least 8224 bytes.
  8078.  
  8079.     Why?
  8080.  
  8081.     LVARs are defined to allow multiple variable portions of data for each record. One example of how this can be used would be in an application that simulates text formatting for a variable length text field.  In this example, the length word could signify how many characters should be on a line.  So if the length is set to 0x14 then the next 20 characters should be displayed on one line.  So, the LVAR has a length word followed by the number of bytes of data indicated by that length.  This repeats until a length byte of 0 (which equate to two bytes of binary zeros) is found, indicating the end of the record.
  8082.  
  8083.     In the example shown above, the LVAR was improperly defined in step 3.  The first two spaces (0x2020) would be interpreted as a length word.  This would tell NetWare SQL that the next 8224 bytes are data.  This process would repeat until NetWare SQL found two null bytes, indicating the end of the LVAR data.
  8084.  
  8085.     When an application attempts to read this improperly structured LVAR data, NetWare SQL returns all 8000+ bytes, even though the application was only expecting a maximum of 300 bytes.
  8086.  
  8087.     It is important to understand that LVARs use that length indicator when storing the data, and then expect two NULL bytess to signify that NetWare SQL should stop looking for more length words and data.
  8088.  
  8089. SOLUTION
  8090.  
  8091.     When programming with LVARs, the array used for this field should be initialized with NULL bytes instead of spaces.  This will provide for the terminating NULLs after the significant data is placed in the array.
  8092.  
  8093.  
  8094.  
  8095.  
  8096. FYI:    Platinum Error When Using NetWare Btrieve
  8097.                                      FYI
  8098.  
  8099. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8100.  
  8101.           TITLE:    Platinum Error When Using NetWare Btrieve
  8102.    DOCUMENT ID#:    FYI.A.1747
  8103.            DATE:    03APR92
  8104.         PRODUCT:    NetWare Btrieve
  8105. PRODUCT VERSION:    ALL
  8106.      SUPERSEDES:    NA
  8107.  
  8108.         SYMPTOM:    Platinum error "... data will be lost ..."
  8109.  
  8110. ISSUE/PROBLEM
  8111.  
  8112.     Platinum Accounting System ships with Btrieve for DOS, however it can be run with NetWare Btrieve.  A problem that might be encountered when using Brequest and a brand new copy of Platinum is that Platinum requires the copy to be registered.  A warning message telling the user to "please register or your data will be lost in 15 days" is displayed until the registration option is completed.  This option, however, attempts to write to a local drive, which will only work if client Btrieve is loaded.  Once this operation is complete, Platinum will work with either client Btrieve or NetWare Btrieve.
  8113.  
  8114. SOLUTION
  8115.  
  8116.     NA
  8117.  
  8118.  
  8119.  
  8120.  
  8121. FYI:    SetCapturePrintQueue() System Call
  8122.                                      FYI
  8123.  
  8124. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8125.  
  8126.           TITLE:    SetCapturePrintQueue() System Call
  8127.    DOCUMENT ID#:    FYI.A.3839
  8128.            DATE:    01APR92
  8129.         PRODUCT:    NetWare System Calls
  8130. PRODUCT VERSION:    1.0
  8131.      SUPERSEDES:    NA
  8132.  
  8133.         SYMPTOM:    NA
  8134.  
  8135. ISSUE/PROBLEM
  8136.  
  8137.     The documentation of SetCapturePrintQueue(), function B8h(06h), mentions to pass the first word (which is the low order) of the QueueID in the BX register and the second word (which is the high order) in the CX register.  However, if these are reversed and the high order word is passed in BX and the low order word is passed in CX, the function returns a successful return code but the target print queue will not be set and capturing will fail.
  8138.  
  8139. SOLUTION
  8140.  
  8141.     Make sure to pass the low order word in the BX register, and the high order word in the CX register.
  8142.  
  8143.  
  8144.  
  8145.  
  8146. FYI:    MakeProcInstance() In Windows Applications
  8147.                                      FYI
  8148.  
  8149. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8150.  
  8151.           TITLE:    MakeProcInstance() In Windows Applications
  8152.    DOCUMENT ID#:    FYI.A.3838
  8153.            DATE:    01APR92
  8154.         PRODUCT:    NetWare C for Windows
  8155. PRODUCT VERSION:    1.22
  8156.      SUPERSEDES:    NA
  8157.  
  8158.         SYMPTOM:    NA
  8159.  
  8160. ISSUE/PROBLEM
  8161.  
  8162.     Netware C Interface for Windows documentation mentions (pg.5-6) that MakeProcInstance() must be called to obtain the ESR address for submission to ECBs.  However, Microsoft Windows SDK Reference Volume 1 (pg. 4-304) mentions that this function is not required for library modules.
  8163.  
  8164. SOLUTION
  8165.  
  8166.     MakeProcInstance() only needs to be called if the ESR is not in a fixed segment.
  8167.  
  8168.  
  8169.  
  8170.  
  8171. FYI:    Preferred ConnectionID in Windows Applications
  8172.                                      FYI
  8173.  
  8174. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8175.  
  8176.           TITLE:    Preferred ConnectionID in Windows Applications
  8177.    DOCUMENT ID#:    FYI.A.3837
  8178.            DATE:    01APR92
  8179.         PRODUCT:    NetWare C for Windows
  8180. PRODUCT VERSION:    1.22
  8181.      SUPERSEDES:    NA
  8182.  
  8183.         SYMPTOM:    Preferred Connection set to 0 under Windows
  8184.  
  8185. ISSUE/PROBLEM
  8186.  
  8187.     The workstation's preferred ConnectionID sometimes changes to 0 even though the application had earlier called SetPreferredConnectionID() and it had been set to some valid ConnectionID other than 0.
  8188.  
  8189. SOLUTION
  8190.  
  8191.     If an application calls SetPreferredConnectionID(), it is possible that some other Windows application might change that PreferredConnectionID to another connection ID.  The workaround to this problem is to call SetPreferredConnectionID() before every request to the desired server.
  8192.  
  8193.  
  8194.  
  8195.  
  8196. FYI:    readdir() Slows Down With Many Files
  8197.                                      FYI
  8198.  
  8199. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8200.  
  8201.           TITLE:    readdir() Slows Down With Many Files
  8202.    DOCUMENT ID#:    FYI.A.3143
  8203.            DATE:    01APR92
  8204.         PRODUCT:    Network C for NLMs
  8205. PRODUCT VERSION:    SDKb
  8206.      SUPERSEDES:    NA
  8207.  
  8208.         SYMPTOM:    readdir() takes too long to read next entry
  8209.  
  8210. ISSUE/PROBLEM
  8211.  
  8212.     The readdir() API, when issued to a remote 2.x server, will begin to slow down dramatically, when approximately 1600 or more files exist in the directory being scanned.
  8213.  
  8214. SOLUTION
  8215.  
  8216.     Right now, the only solution is to reduce the number of files in each directory.
  8217.  
  8218.  
  8219.  
  8220.  
  8221. FYI:    SpxListenForConnectedPacket() Is Not Documented
  8222.                                      FYI
  8223.  
  8224. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8225.  
  8226.           TITLE:    SpxListenForConnectedPacket() Is Not Documented
  8227.    DOCUMENT ID#:    FYI.A.3142
  8228.            DATE:    01APR92
  8229.         PRODUCT:    Network C for NLMs
  8230. PRODUCT VERSION:    SDKb
  8231.      SUPERSEDES:    NA
  8232.  
  8233.         SYMPTOM:    NA
  8234.  
  8235. ISSUE/PROBLEM
  8236.  
  8237.     Starting with PATCH311, a new API called SpxListenForConnectedPacket() was added to the CLib for NetWare v3.11.  This API allows you to post an ECB on a specific SPX session.  The prototype is:
  8238.  
  8239.        int SpxListenForConnectedPacket(
  8240.                unsigned short socket,
  8241.                SPX_ECB *ECBp,
  8242.                unsigned short connection);
  8243.  
  8244.     where 'socket' is the open socket (0 if specified in the ECB), 'ECBp' is a pointer to the listen ECB and 'connection' is the SPX connection number assigned when the connection was established.  This API must be added to the import symbol list, or it can be added to the CLIB.IMP file.
  8245.  
  8246. SOLUTION
  8247.  
  8248.     NA
  8249.  
  8250.  
  8251.  
  8252.  
  8253. FYI:    Using BROLLFWD with Btrieve for DOS
  8254.                                      FYI
  8255.  
  8256. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8257.  
  8258.           TITLE:    Using BROLLFWD with Btrieve for DOS
  8259.    DOCUMENT ID#:    FYI.A.2111
  8260.            DATE:    01APR92
  8261.         PRODUCT:    Btrieve for DOS
  8262. PRODUCT VERSION:    5.10
  8263.      SUPERSEDES:    NA
  8264.  
  8265.         SYMPTOM:    NA
  8266.  
  8267. ISSUE/PROBLEM
  8268.  
  8269.     The Btrieve for DOS Installation and Operation Manual discusses the logging of Btrieve files to another volume on the server. It does not however, discuss how to log a Btrieve file to another physical hard drive or mapped drive.
  8270.  
  8271. SOLUTION
  8272.  
  8273.     The BLOG.CFG file indicates which files should be logged.  This configuration file must reside in the BLOG directory off the root of the volume containing the Btrieve file(s) to be logged.  The entry into the BLOG.CFG file should be in the following format to log a Btrieve file to another physical drive:
  8274.  
  8275.     <Btrieve filename> [=<logname>]
  8276.  
  8277.     where:    <Btrieve filename> - is the absolute pathname of the Btrieve file to be logged WITHOUT THE DRIVE LETTER.  It must begin with a backslash (\).
  8278.  
  8279.     <logname> - is the absolute pathname to the associated log file INCLUDICLUDING THE DRIVE LETTER.
  8280.  
  8281.     For example, suppose a Btrieve file called TEST.BTR resides on the server in the F:\DATA directory, and the log file is to be maintained on a local hard drive (Drive C:\BTRIEVE\LOG\TEST.LOG).  The entry into the BLOG.CFG file would be written as:
  8282.  
  8283.                   \DATA\TEST.BTR=C:\BTRIEVE\LOG\TEST.LOG
  8284.  
  8285.     NOTE: This is only for Btrieve for DOS.  When using NetWare Btrieve, drive letter can not be specified for either the Btrieve filename or the logfile.
  8286.  
  8287.  
  8288.  
  8289.  
  8290. FYI:    FEGetOriginatingNameSpace() Documentation Omission
  8291.                                      FYI
  8292.  
  8293. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8294.  
  8295.           TITLE:    FEGetOriginatingNameSpace() Documentation Omission
  8296.    DOCUMENT ID#:    FYI.A.3836
  8297.            DATE:    31MAR92
  8298.         PRODUCT:    Network C for NLMs
  8299. PRODUCT VERSION:    SDK
  8300.      SUPERSEDES:    NA
  8301.  
  8302.         SYMPTOM:    NA
  8303.  
  8304. ISSUE/PROBLEM
  8305.  
  8306.     The documentation of FEGetOriginatingNameSpace() does not mention the return values for the different name spaces.
  8307.  
  8308. SOLUTION
  8309.  
  8310.     This function returns 0 for DOS 
  8311.  
  8312.                     1 for MACINTOSH
  8313.                         2 for NFS
  8314.                         3 for FTAM
  8315.                         4 for OS2
  8316.  
  8317.     These values are mentioned in the documentaion of GetNameSpaceName().
  8318.  
  8319.  
  8320.  
  8321.  
  8322. FYI:    Register Passing with Microsoft C 6.0
  8323.                                      FYI
  8324.  
  8325. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8326.  
  8327.           TITLE:    Register Passing with Microsoft C 6.0
  8328.    DOCUMENT ID#:    FYI.A.3223
  8329.            DATE:    31MAR92
  8330.         PRODUCT:    NetWare C Interface DOS
  8331. PRODUCT VERSION:    1.2
  8332.      SUPERSEDES:    NA
  8333.  
  8334.         SYMPTOM:    NA
  8335.  
  8336. ISSUE/PROBLEM
  8337.  
  8338.     Microsoft C 6.0 has a new command line parameter /Gr, which specifies that functions will pass parameters in registers.  If this switch is used, none of the NetWare C-Interface functions will be resolved at link time.  Microsoft does not export these symbols with an underscore before the function name when register-passing is used.  Therefore, the C-Interface functions will not be recognized.
  8339.  
  8340. SOLUTION
  8341.  
  8342.     To solve this problem you must do two things.  First, include stddef.h before nit.h.  Second, add the cdecl pragma before each of the C-Interface functions to be used.  This will insure that those symbols will be exported with the underscore before the function name and the parameters will be pushed on to the stack.
  8343.  
  8344.  
  8345.  
  8346.  
  8347. FYI:    Btrieve for Windows Load Parameters
  8348.                                      FYI
  8349.  
  8350. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8351.  
  8352.           TITLE:    Btrieve for Windows Load Parameters
  8353.    DOCUMENT ID#:    FYI.A.2419
  8354.            DATE:    27MAR92
  8355.         PRODUCT:    Btrieve for Windows
  8356. PRODUCT VERSION:    5.10
  8357.      SUPERSEDES:    NA
  8358.  
  8359.         SYMPTOM:    NA
  8360.  
  8361. ISSUE/PROBLEM
  8362.  
  8363.     When the WBTRCALL.DLL is loaded into memory during the first Btrieve call from a Windows application, are the Btrieve load parameters "global" for all other Btrieve for Windows applications running in different Windows sessions, or can each session have different Btrieve load parameters, even though all the applications are using the same WBTRCALL.DLL?
  8364.  
  8365. SOLUTION
  8366.  
  8367.     When using the local WBTRCALL.DLL, each Windows session can specify different Btrieve load parameters if each application calls the WBTRVINIT() function.  This call allows you to pass a string containing the Btrieve load parameters, and should be the first Btrieve call made by the application.  If the WBTRVINIT() function is not used, then the load parameters specified in the [btrieve] section of the WIN.INI file will be used.  If there is not a [btrieve] section in WIN.INI, default values for the parameters will be used when the WBTRCALL.DLL is loaded.  Refer to the Btrieve for Windows Installation and Operation manual for a complete description of the Btrieve load parameters and their default values.
  8368.     When using the requester WBTRCALL.DLL, the Btrieve load parameters are essentially "global" since they can only be specified in the [brequestDPMI] section of the WIN.INI file.  The WBRQSHELLINIT() function is not currently implemented to initialize the requester WBTRCALL.DLL from within an application.
  8369.  
  8370.  
  8371.  
  8372.  
  8373. FYI:    Spawning an NLM
  8374.                                      FYI
  8375.  
  8376. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8377.  
  8378.           TITLE:    Spawning an NLM
  8379.    DOCUMENT ID#:    FYI.A.1526
  8380.            DATE:    27MAR92
  8381.         PRODUCT:    Network C for NLMs
  8382. PRODUCT VERSION:    20b
  8383.      SUPERSEDES:    NA
  8384.  
  8385.         SYMPTOM:    NA
  8386.  
  8387. ISSUE/PROBLEM
  8388.  
  8389.     When an NLM is spawned from another NLM, start-up messages for the NLM are displayed on the NLM screen which called the spawn function.  This is not desireable for some applications since the start-up messages may corrupt the formatted layout of the NLM screen.
  8390.  
  8391. SOLUTION
  8392.  
  8393.     Before spawning an NLM, set the ScreenID to the ID of the system console, spawn the NLM, then set the ScreenID back to the NLM's original ScreenID.  The start-up messages for the spawned NLM will then be sent to the system console rather than the calling NLM's screen.
  8394.  
  8395.     The following call will return the screen ID for the system console :
  8396.      screenID = CreateScreen("System Console",0)
  8397.  
  8398.  
  8399.  
  8400.  
  8401. FYI:    Calling a CLIB function from an AES process abends the server.
  8402.                                      FYI
  8403.  
  8404. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8405.  
  8406.           TITLE:    Calling a CLIB function from an AES process abends the server.
  8407.    DOCUMENT ID#:    FYI.A.1525
  8408.            DATE:    27MAR92
  8409.         PRODUCT:    Network C for NLMs
  8410. PRODUCT VERSION:    20b
  8411.      SUPERSEDES:    NA
  8412.  
  8413.         SYMPTOM:    Server abend.
  8414.  
  8415. ISSUE/PROBLEM
  8416.  
  8417.     Calling a CLIB function from an AES process abends the server.
  8418.  
  8419. SOLUTION
  8420.  
  8421.     Before an AES (Asynchronous Event Scheduler) process calls a CLIB function, the ThreadGroupID must be set to the ThreadGroupID of any loaded CLIB NLM, The most obvious would be the NLM which scheduled the AES process.  The ThreadGroupID can be added as an element of the AES structure that is passed to the AES function.  The AES function should then set the ThreadGroupID (first saving the current ThreadGroupID), make the CLIB calls, then before exiting the AES process set the ThreadGroupID to the original value when the process was invoked.
  8422.  
  8423.     The description above applies to both SLEEP and NO SLEEP AES processes.  However, with NO SLEEP AES processes there is an additional restriction that the AES process may NOT call any CLIB blocking functions (i.e. printf(), delay() etc.).
  8424.  
  8425.  
  8426.  
  8427.  
  8428. FYI:    Loading Btrieve from a Turbo Pascal Program
  8429.                                      FYI
  8430.  
  8431. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8432.  
  8433.           TITLE:    Loading Btrieve from a Turbo Pascal Program
  8434.    DOCUMENT ID#:    FYI.A.1524
  8435.            DATE:    27MAR92
  8436.         PRODUCT:    Btrieve
  8437. PRODUCT VERSION:    ALL
  8438.      SUPERSEDES:    NA
  8439.  
  8440.         SYMPTOM:    NA
  8441.  
  8442. ISSUE/PROBLEM
  8443.  
  8444.     How can the Btrieve TSR be loaded from within a Turbo Pascal application?
  8445.  
  8446. SOLUTION
  8447.  
  8448.     When loading Btrieve from a Turbo Pascal program, the executable file name with the extention must be passed to the EXEC procedure.  The following two examples both work under Turbo Pascal.
  8449.  
  8450.       EXEC('command.com','/c btrieve.exe /m:40 /p:4096 /u:2');
  8451.       EXEC('btrieve.exe','/m:40 /p:4096 /u:2');
  8452.  
  8453.     Without the file extention, a Pascal DOS error 2 (file not found), will be returned.  This was tested with Turbo Pascal version 5.0 and 6.0.
  8454.  
  8455.  
  8456.  
  8457.  
  8458. FYI:    Can't Create Network Printers On COM3, COM4.
  8459.                                      FYI
  8460.  
  8461. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8462.  
  8463.           TITLE:    Can't Create Network Printers On COM3, COM4. NetWare Lite
  8464.    DOCUMENT ID#:    FYI.P.5931
  8465.            DATE:    25MAR92
  8466.         PRODUCT:    NetWare Lite
  8467. PRODUCT VERSION:    v1.0
  8468.      SUPERSEDES:    NA
  8469.  
  8470.         SYMPTOM:    Can't create network printers on COM3 and COM4
  8471.  
  8472. ISSUE/PROBLEM
  8473.  
  8474.     Customer has several serial printers, and wants to use COM3 and COM4 as network printers.
  8475.  
  8476. SOLUTION
  8477.  
  8478.     NetWare Lite doesn't let you create network printers on COM3 and COM4.  The reason for this is that COM1 and COM3 use the same hardware interrupt and COM2 and COM4 use the same hardware interrupt.  So DOS can't use both 1 and 3 at the same time, nor use 2 and 4 at the same time.
  8479.  
  8480.     This is true unless you have an EISA machine, which apparently lets you set a type of second level interrupt, and distinguish between the 1 and 3, and 2 and 4 COM ports.  NetWare Lite would still let you use only 1 and 2.
  8481.  
  8482.  
  8483.  
  8484.  
  8485. FYI:    Applications Report Access Denied. Open Files
  8486.                                      FYI
  8487.  
  8488. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8489.  
  8490.           TITLE:    Applications Report Access Denied. Open Files
  8491.    DOCUMENT ID#:    FYI.P.5925
  8492.            DATE:    25MAR92
  8493.         PRODUCT:    NetWare
  8494. PRODUCT VERSION:    v1.0
  8495.      SUPERSEDES:    NA
  8496.  
  8497.         SYMPTOM:    Applications Report Access Denied.
  8498.  
  8499. ISSUE/PROBLEM
  8500.  
  8501.     Applications report "Access denied" or "Insufficient file handles" when running application through a drive mapped to yourself.  Examining the server status from another workstation shows available file handles (e.g. max open files=50 currently open files=25).
  8502.  
  8503. SOLUTION
  8504.  
  8505.     Files opened through client cause the open file counter on the client machine to be incremented as well as the file counter on the server where the file resides. If the two machines happen to be the same then the open file counter gets incremented twice for every file opened.  This only happens when accessing files via the network (i.e. through a mapped drive).
  8506.  
  8507.     Rather than mapping to yourself, use the SUBST command instead. For example: You have f: mapped to the network directory APPS which has actual path c:\apps on the server. On the server you would do "subst f: c:\apps" instead of "net map f: apps". Then the file counter will only go up by 1 for each open file and disk I/O will be a lot faster. Of course, you still have to use the map command at workstations.
  8508.  
  8509.  
  8510.  
  8511.  
  8512. FYI:    VIPX.386 and IPXSendPacket
  8513.                                      FYI
  8514.  
  8515. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8516.  
  8517.           TITLE:    VIPX.386 and IPXSendPacket
  8518.    DOCUMENT ID#:    FYI.A.3360
  8519.            DATE:    25MAR92
  8520.         PRODUCT:    NetWare System Calls
  8521. PRODUCT VERSION:    1.0
  8522.      SUPERSEDES:    NA
  8523.  
  8524.         SYMPTOM:    Garbage in the AL register
  8525.  
  8526. ISSUE/PROBLEM
  8527.  
  8528.     When making IPX calls in a DOS BOX under Windows with the 1.0 version of System Calls - DOS, the 1.11 version of VIPX does not update the AL register when an ECB is successfully posted with IPXSendPacket().  The AL register is updated only when an error occurs.  However, this can be a problem if the AL register is not cleared before making the IPXSendPacket() call as garbage may be interpreted as an error condition.
  8529.  
  8530. SOLUTION
  8531.  
  8532.     Clear AL before making the IPXSendPacket() call.
  8533.  
  8534.  
  8535.  
  8536.  
  8537. FYI:    Interfacing Btrieve with MS Visual Basic
  8538.                                      FYI
  8539.  
  8540. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8541.  
  8542.           TITLE:    Interfacing Btrieve with MS Visual Basic
  8543.    DOCUMENT ID#:    FYI.A.2112
  8544.            DATE:    25MAR92
  8545.         PRODUCT:    Btrieve for Windows
  8546. PRODUCT VERSION:    5.10
  8547.      SUPERSEDES:    FYI.A.2102
  8548.  
  8549.         SYMPTOM:    NA
  8550.  
  8551. ISSUE/PROBLEM
  8552.  
  8553.     The Btrieve for Windows Developers Kit provides Visual BASIC programmers with all the necessary tools for creating applications that are compatible with Btrieve, Novell's high performance key-indexed record manager. Any application written with Btrieve for Windows will run with either the NetWare 2.X (VAP) or NetWare 3.X (NLM) versions of NetWare Btrieve or with the Client Windows version of Btrieve.
  8554.  
  8555. SOLUTION
  8556.  
  8557.     By studying the Btrieve for Windows interface (WBTRINTF.C), it can be determined how the Btrieve for Windows Dynamic Link Library (DLL) expects the parameters for each Btrieve call. For example, one method of calling Btrieve is to call the function BTRCALL () in the DLL. This method requires seven parameters and is done as follows:
  8558.  
  8559.                  BTRCALL  (int opcode,
  8560.                           (char far*) position_block,
  8561.                           (char far*) data_buffer,
  8562.                           (unsigned far*) data_buffer_length,
  8563.                           (char far*) key_buffer,
  8564.                           (unsigned char) key_buffer_length,
  8565.                           int key_number);
  8566.  
  8567.     Notice there is an additional parameter: key_buffer_length.  This parameter is always validated over 255 bytes. When tracing with Btrieve for Windows, you may encounter an "INVALID POINTER parameter #4" error which corresponds to the key buffer.  The reason for this, is that Btrieve is evaluating the key buffer for the maximum number of bytes, 255, even though you may have a key buffer that is set to only 10 bytes in length.  Furthermore, the message for an invalid pointer for parameter #4 is relatively meaningless. It just means that you have a key buffer declared that is less than 255 bytes.
  8568.  
  8569.     In Visual Basic, by default, all parameters passed to functions are passed by reference (by address).  Parameters that need to be passed by value, need to be declared in the parameter list with the BYVAL keyword in front of each parameter. If you pass a string by value (with BYVAL keyword), this will be the equivalent to passing a (char far *) in C, therefore any of the above parameters which require a (char far *) cast and are defined as strings can be declared with the BYVAL keyword. The following example will show how to initialize the Btrieve functions and make a simple Btrieve OPEN and RESET call in Visual Basic.
  8570.  
  8571.      GLOBAL DEFINITIONS
  8572.      ===================================================================
  8573.  
  8574.      DefInt A-Z
  8575.  
  8576.      Global Const BOPEN = 0
  8577.      Global Const BCLOSE = 1
  8578.      Global Const BINSERT = 2
  8579.      Global Const BUPDATE = 3
  8580.      Global Const BGETEQUAL = 5
  8581.      Global Const BNEXT = 6
  8582.      Global Const BPREVIOUS = 7
  8583.      Global Const BGREATERorEQUAL = 9
  8584.      Global Const BFIRST = 12
  8585.      Global Const BCREATE = 14
  8586.      Global Const BSTAT = 15
  8587.      Global Const BSTOP = 25
  8588.      Global Const BTVersion = 26
  8589.      Global Const BRESET = 28
  8590.  
  8591.      Rem  Key Flags
  8592.      Global Const DUP = 1
  8593.      Global Const MODIFIABLE = 2
  8594.      Global Const BIN = 4
  8595.      Global Const NUL = 8
  8596.      Global Const SEGMENT = 16
  8597.      Global Const SEQ = 32
  8598.      Global Const DEC = 64
  8599.      Global Const SUP = 128
  8600.  
  8601.      Rem  Key Types
  8602.      Global Const EXTTYPE = 256
  8603.      Global Const MANUAL = 512
  8604.      Global Const BSTRING = 0
  8605.      Global Const BINTEGER = 1
  8606.      Global Const BFLOAT = 2
  8607.      Global Const BDATE = 3
  8608.      Global Const BTIME = 4
  8609.      Global Const BDECIMAL = 5
  8610.      Global Const BNUMERIC = 8
  8611.      Global Const BZSTRING = 11
  8612.      Global Const BAUTOINC = 15
  8613.  
  8614.      Declare Function wbtrvstop Lib "wbtrcall.dll" () As Integer
  8615.      Declare Function btrcall Lib "wbtrcall.dll" (ByVal op%, ByVal Pb$, Db   AsAny, Dl As Integer, Kb As Any,_ByVal Kl%, ByVal Kn%) As Integr
  8616.  
  8617.      NOTE ***    If you do not want to use a User-Defined TYPE structure for the KeyBuffer parameter then pass Kb by value (ByVal Kb$) in the above prototype.
  8618.  
  8619.  
  8620.      Rem  Btrieve Structures
  8621.  
  8622.      Type KeySpec
  8623.         KeyPos    As Integer
  8624.         KeyLen    As Integer
  8625.         KeyFlags  As Integer
  8626.         KeyTot    As Long
  8627.         KeyType   As String * 1
  8628.         Reserved  As String * 5
  8629.      End Type
  8630.  
  8631.      Type FileSpec
  8632.         RecLen     As Integer
  8633.         PageSize   As Integer
  8634.         IndxCnt    As Integer
  8635.         NotUsed    As String * 4
  8636.         FileFlags  As Integer
  8637.         Reserved   As String * 2
  8638.         Allocation As Integer
  8639.         KeyBuf0    As KeySpec
  8640.         KeyBuf1    As KeySpec
  8641.         KeyBuf2    As KeySpec
  8642.         KeyBuf3    As KeySpec
  8643.      End Type
  8644.  
  8645.      Type DateStruct
  8646.         Day            As String * 1
  8647.         Month          As String * 1
  8648.         Year           As Integer
  8649.      End Type
  8650.  
  8651.      Type RecordBuffer
  8652.         EmpName        As String * 20
  8653.         Birthdate      As DateStruct
  8654.         Income         As String * 7
  8655.         Age            As Integer
  8656.      End Type
  8657.  
  8658.      Global DataBuf As RecordBuffer
  8659.      Global FileBuf As FileSpec
  8660.      Global PosBlk$
  8661.  
  8662.  
  8663.  
  8664.      PROJECT MAIN
  8665.      =====================================================================
  8666.      Sub main ()
  8667.      '  Example with MICROSOFT VISUAL BASIC v1.0 and Btrieve 5.10   '
  8668.      '  By Michael D. Shoemaker
  8669.      '  Novell Technical Support
  8670.      '  Date: March 4, 1992
  8671.      KeyBuf.FileName = "f:\ssl\mshoemak\code\vbcode\TEST.BTR "
  8672.      PosBlk$ = Space$(128)
  8673.      '
  8674.      ' *************************** Btrieve Create   *****************************
  8675.      '
  8676.      ' ************* SET UP FILE SPECS
  8677.      FileBuf.RecLen = 33
  8678.      FileBuf.PageSize = 1024
  8679.      FileBuf.IndxCnt = 4
  8680.      FileBuf.FileFlags = 0
  8681.  
  8682.      ' ************* SET UP KEY SPECS
  8683.      FileBuf.KeyBuf0.KeyPos = 1
  8684.      FileBuf.KeyBuf0.KeyLen = 20
  8685.      FileBuf.KeyBuf0.KeyFlags = EXTTYPE% + MODIFIABLE%
  8686.      FileBuf.KeyBuf0.KeyType = Chr$(BSTRING)
  8687.  
  8688.      FileBuf.KeyBuf1.KeyPos = 21
  8689.      FileBuf.KeyBuf1.KeyLen = 4
  8690.      FileBuf.KeyBuf1.KeyFlags = EXTTYPE% + MODIFIABLE% + DUP%
  8691.      FileBuf.KeyBuf1.KeyType = Chr$(BDATE)
  8692.  
  8693.      FileBuf.KeyBuf2.KeyPos = 25
  8694.      FileBuf.KeyBuf2.KeyLen = 7
  8695.      FileBuf.KeyBuf2.KeyFlags = EXTTYPE% + MODIFIABLE% + DUP%
  8696.      FileBuf.KeyBuf2.KeyType = Chr$(BSTRING)
  8697.  
  8698.      FileBuf.KeyBuf3.KeyPos = 32
  8699.      FileBuf.KeyBuf3.KeyLen = 2
  8700.      FileBuf.KeyBuf3.KeyFlags = EXTTYPE% + MODIFIABLE% + DUP%
  8701.      FileBuf.KeyBuf3.KeyType = Chr$(BINTEGER)
  8702.  
  8703.      BufLen% = Len(FileBuf)
  8704.      KeyBufLen% = Len(FileName$)
  8705.      Status% = btrcall(BCREATE%, PosBlk$, FileBuf, BufLen%, KeyBuf, KeyBufLen%, 0
  8706.  
  8707.      If Status% <> 0 Then
  8708.         Msg$ = "Error Creating File. Status = " + Str$(Status%)
  8709.         MsgBox Msg$
  8710.      Else
  8711.         Msg$ = "File Test.btr Created Successfully!"
  8712.         MsgBox Msg$
  8713.      End If
  8714.  
  8715.      'Open File
  8716.      KeyBuf.FileName = "f:\ssl\mshoemak\code\vbcode\test.btr "
  8717.      KbLen% = Len(KeyBuf)
  8718.      DbLen% = Len(DataBuf)
  8719.      OpenMode% = 0
  8720.      Status% = btrcall(BOPEN, PosBlk$, DataBuf, DbLen%, KeyBuf, KbLen%, OpenMode%
  8721.      If Status% Then
  8722.        Msg$ = "Error Opening file. Status = " + Str$(Status%)
  8723.        MsgBox Msg$
  8724.        GoTo Fini
  8725.      Else
  8726.        Msg$ = "File Opened Successfully!"
  8727.        MsgBox Msg$
  8728.      End If
  8729.  
  8730.      'Insert
  8731.      DataBuf.EmpName = "Sammy Sample"
  8732.      DataBuf.Birthdate.Day = Chr$(3)
  8733.      DataBuf.Birthdate.Month = Chr$(12)
  8734.      DataBuf.Birthdate.Year = 1959
  8735.      DataBuf.Income = "0132000"
  8736.      DataBuf.Age = 33
  8737.  
  8738.      DbLen% = Len(DataBuf)
  8739.      KbLen% = Len(KeyBuf)
  8740.      KeyNum% = 0
  8741.  
  8742.      Status% = btrcall(BINSERT, PosBlk$, DataBuf, DbLen%, KeyBuf, KbLen%, KeyNum%
  8743.  
  8744.      If Status% Then
  8745.        Msg$ = "Error on Insert. Status = " + Str$(Status%)
  8746.        MsgBox Msg$
  8747.      Else
  8748.        Msg$ = "Insert Successful!"
  8749.        MsgBox Msg$
  8750.      End If
  8751.  
  8752.      'Get First
  8753.      KbLen% = Len(Birthdate)
  8754.      DbLen% = Len(DataBuf)
  8755.  
  8756.      Status% = btrcall(BFIRST, PosBlk$, DataBuf, DbLen%, Birthdate, KbLen%, 1)
  8757.      If Status% Then
  8758.        Msg$ = "Error on Get First.  Status = " + Str$(Status%)
  8759.        MsgBox Msg$
  8760.      Else
  8761.        Msg$ = "Birthdate = " + Str$(Asc(Birthdate.Day)) + "/" +_
  8762.               Str$(Asc(Birthdate.Month)) + "/" + Str$(Birthdate.Year)
  8763.        MsgBox Msg$
  8764.      End If
  8765.  
  8766.      'Get Equal
  8767.      DbLen% = Len(DataBuf)
  8768.      Birthdate.Day = Chr$(3)
  8769.      KbLen% = Len(Birthdate)
  8770.      KeyNum% = 1
  8771.  
  8772.      Status% = btrcall(BGETEQUAL, PosBlk$, DataBuf, DbLen%, Birthdate, KbLen%, KeNum%)      If Status% Then
  8773.        Msg$ = "Error on Get Equal. Status = " + Str$(Status%)
  8774.        MsgBox Msg$
  8775.      Else
  8776.        Msg$ = DataBuf.EmpName
  8777.        MsgBox Msg$
  8778.      End If
  8779.  
  8780.      Fini:
  8781.      Status% = btrcall(BReset, PosBlk$, DataBuf, DbLen%, KeyBuf, KbfLen%, KeyNum%
  8782.  
  8783.      If Status% Then
  8784.        Msg$ = "Error on B-Reset!" + Str$(Status%)
  8785.        MsgBox Msg$
  8786.      Else
  8787.        Msg$ = "All Btrieve files closed successfully!"
  8788.        MsgBox Msg$
  8789.      End If
  8790.  
  8791.      End Sub
  8792.      =====================================================================
  8793.  
  8794.  
  8795.  
  8796.  
  8797. FYI:    Printing Garbage Characters In Windows From LPT1
  8798.                                      FYI
  8799.  
  8800. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8801.  
  8802.           TITLE:    Printing Garbage Characters In Windows From LPT1
  8803.    DOCUMENT ID#:    FYI.P.5932
  8804.            DATE:    24MAR92
  8805.         PRODUCT:    NetWare
  8806. PRODUCT VERSION:    v3.11 and v2.2
  8807.      SUPERSEDES:    NA
  8808.  
  8809.         SYMPTOM:    Printing Garbage Characters In Windows From LPT1
  8810.  
  8811. ISSUE/PROBLEM
  8812.  
  8813.     Printing from within Windows using either WordPerfect or Write, would give pages of control type characters (from LPT1 in Windows).  If a printer was connected locally the doc. would print fine.  We tried with and without the Printmanager, different drivers, including Generic text only and the latest Pserver.  If we selected the LPT1OS2, or LPT2OS2 port in Windows then it would print text OK, but had problems with any graphics.
  8814.  
  8815. SOLUTION
  8816.  
  8817.     After installing Winup5.zip he could print fine, text or graphics, from LPTx, LPT1OS2 or LPT2OS2.
  8818.  
  8819.  
  8820.  
  8821.  
  8822. FYI:    "The Bindery Contains An Invalid Object..." NetWare
  8823.                                      FYI
  8824.  
  8825. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8826.  
  8827.           TITLE:    "The Bindery Contains An Invalid Object..." NetWare v3.11
  8828.    DOCUMENT ID#:    FYI.P.5916
  8829.            DATE:    24MAR92
  8830.         PRODUCT:    NetWare
  8831. PRODUCT VERSION:    v3.11
  8832.      SUPERSEDES:    NA
  8833.  
  8834.         SYMPTOM:    WHOAMI and TLIST return an error "The Bindery Contains An Invalid Object..."
  8835.  
  8836. ISSUE/PROBLEM
  8837.  
  8838.     When WHOAMI and TLIST are executed they return the following error "The bindery contains an invalid object in the trustee list".  As well as when the users would login, Login would execute the personal login script for another user and %LOGIN_NAME, used in the system login script, would return a different user name than the actual user logging in.  This issue is probably a corrupt bindery and possibly problems with the directory entry table.
  8839.  
  8840. SOLUTION
  8841.  
  8842.     The customer ran BINDFIX,  At this point they could login and access files in public directory, however executing TLIST would still give the above error message, "the bindery contains......." They scanned for a virus and did not find any.  Ran VREPAIR to repair the Directory Entry Table. The DET is where the Trustee information is stored.  Vrepair resolved this customers problem.  However if Vrepair had not fixed it, they could have deleted the volume and then recreate it and then restored the files from a backup to build a new DET and resolve the problems with the trustee assignments.
  8843.  
  8844.  
  8845.  
  8846.  
  8847. FYI:    "Two Subdirectories Reference The Same first directory block."
  8848.                                      FYI
  8849.  
  8850. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8851.  
  8852.           TITLE:    "Two Subdirectories Reference The Same first directory block."
  8853.    DOCUMENT ID#:    FYI.P.5911
  8854.            DATE:    24MAR92
  8855.         PRODUCT:    NetWare
  8856. PRODUCT VERSION:    v3.11
  8857.      SUPERSEDES:    NA
  8858.  
  8859.         SYMPTOM:    Getting the error: "Two Subdirectories Reference The Same first directory block."
  8860.  
  8861. ISSUE/PROBLEM
  8862.  
  8863.     The System Messages recommends running VREPAIR.  However, a customer wanted to know more about the message.
  8864.  
  8865. SOLUTION
  8866.  
  8867.     Here is an explanation.  When a new directory is created in 3.11 NetWare, a 4Kbyte block (32 entries times 128 bytes/entry) is created.  The new or parent directory has a pointer to the "first" 4Kbyte block.  Only entries for files and/or subdirectories which belong to the parent directory will be found in the first 4Kbyte block or subsequent linked blocks.  Another parent directory cannot (in theory) point to that 4Kbyte block as its first directory block.
  8868.  
  8869.     Only an anomaly which causes corruption would result in two parent directories claiming the same first directory block.  While VREPAIR may fix the problem, the cause could be any number of things.  To mention a few:
  8870.  
  8871.     Bad controller/HBA, drive, power glitches, problem with driver, firmware, bad mother board, bad memory.
  8872.  
  8873.  
  8874.  
  8875.  
  8876. FYI:    Brequest in an OS/2 DOS Box
  8877.                                      FYI
  8878.  
  8879. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8880.  
  8881.           TITLE:    Brequest in an OS/2 DOS Box
  8882.    DOCUMENT ID#:    FYI.A.1853
  8883.            DATE:    24MAR92
  8884.         PRODUCT:    NetWare Btrieve
  8885. PRODUCT VERSION:    5.1x
  8886.      SUPERSEDES:    NA
  8887.  
  8888.         SYMPTOM:    IPXOpenSocket Failed
  8889.  
  8890. ISSUE/PROBLEM
  8891.  
  8892.     BREQUEST.EXE will not run in an OS/2 DOS box on OS/2 version 1.3.  There are incompatibilities between the SPX APIs in the DOS box and OS/2.  If the program DOSBOX.EXE is run with BREQUEST.EXE then the error 'IPXOpenSocket Failed' will be returned.  This is a known problem and cannot be corrected in the 1.3 NetWare OS/2 requester.
  8893.  
  8894. SOLUTION
  8895.  
  8896.     NA
  8897.  
  8898.  
  8899.  
  8900.  
  8901. FYI:    Lost Responses And Unknown Requests Statistics
  8902.                                      FYI
  8903.  
  8904. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8905.  
  8906.           TITLE:    Lost Responses And Unknown Requests Statistics
  8907.    DOCUMENT ID#:    FYI.P.5905
  8908.            DATE:    23MAR92
  8909.         PRODUCT:    NetWare Lite
  8910. PRODUCT VERSION:    All
  8911.      SUPERSEDES:    NA
  8912.  
  8913.         SYMPTOM:    Lost Responses And Unknown Requests Statistics
  8914.  
  8915. ISSUE/PROBLEM
  8916.  
  8917.     According to documentation on pg 61 of the manual these two statistics should remain low.  Where do you find these statistics and what is considered low?
  8918.  
  8919. SOLUTION
  8920.  
  8921.     A customer can find these by doing an ALT-SHIFT-N.  However the documentation is wrong. In reality, the numbers are useless.
  8922.  
  8923.  
  8924.  
  8925.  
  8926. FYI:    Difficulty Running IBM Iclass With NetWare v2.2
  8927.                                      FYI
  8928.  
  8929. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8930.  
  8931.           TITLE:    Difficulty Running IBM Iclass With NetWare v2.2
  8932.    DOCUMENT ID#:    FYI.P.5901
  8933.            DATE:    23MAR92
  8934.         PRODUCT:    NetWare
  8935. PRODUCT VERSION:    v2.2
  8936.      SUPERSEDES:    NA
  8937.  
  8938.         SYMPTOM:    Stack overflow detected by kernal
  8939.  
  8940. ISSUE/PROBLEM
  8941.  
  8942.     Getting the ABEND: Stack overflow detected by kernal when downing the server.
  8943.  
  8944. SOLUTION
  8945.  
  8946.     This was resolved with 286DWN.ZIP.  This increases the number of files that can be opened, from 24 to 240, when the down command is issued.  Also make sure everyone is logged out before downing.
  8947.  
  8948.  
  8949.  
  8950.  
  8951. FYI:    Is VIPX.386 Loaded?
  8952.                                      FYI
  8953.  
  8954. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  8955.  
  8956.           TITLE:    Is VIPX.386 Loaded?
  8957.    DOCUMENT ID#:    FYI.A.2938
  8958.            DATE:    23MAR92
  8959.         PRODUCT:    NetWare C for Windows
  8960. PRODUCT VERSION:    v1.22
  8961.      SUPERSEDES:    NA
  8962.  
  8963.         SYMPTOM:    NA
  8964.  
  8965. ISSUE/PROBLEM
  8966.  
  8967.     In order to determine if the VIPX.386 driver for Windows is loaded into memory, issue an INT 2F call with the value 1684h in the AX register and and 0200h in the BX register.  The function name is WindGetDeviceApiPoint(). If the return code in the ES:DI register is 0, then VIPX.386 driver is NOT loaded. Otherwise, VIPX.386 is loaded.
  8968.  
  8969.     Example Borland C code:
  8970.  
  8971.      asm{
  8972.      push   es
  8973.      push   di
  8974.      push   ax
  8975.      push   bx
  8976.      mov    ax, 0x1684
  8977.      mov    bx, 0x0200
  8978.      int    2fh
  8979.  
  8980.      mov    ax, es
  8981.      mov    ESrc, ax
  8982.      mov    ax, di
  8983.      mov    DIrc, ax
  8984.      pop    ax
  8985.      pop    bx
  8986.      pop    di
  8987.      pop    es
  8988.      }
  8989.  
  8990.     What ES:DI represents here is the far call address for VIPX.
  8991.  
  8992. SOLUTION
  8993.  
  8994.     NA
  8995.  
  8996.  
  8997.  
  8998.  
  8999. FYI:    CAPTURE With No Parameters "Queue SFD Does Not Exist..."
  9000.                                      FYI
  9001.  
  9002. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9003.  
  9004.           TITLE:    CAPTURE With No Parameters "Queue SFD Does Not Exist..."
  9005.    DOCUMENT ID#:    FYI.P.5863
  9006.            DATE:    21MAR92
  9007.         PRODUCT:    NetWare
  9008. PRODUCT VERSION:    v3.11
  9009.      SUPERSEDES:    NA
  9010.  
  9011.         SYMPTOM:    CAPTURE with no parameters gets error "Queue SFD Does Not Exist..."
  9012.  
  9013. ISSUE/PROBLEM
  9014.  
  9015.     The user was trying to capture with no parameters and would get the message above.  After checking out all PRINTCON.DAT files on the server, he mentioned something about spooling at the console.
  9016.  
  9017. SOLUTION
  9018.  
  9019.     It turns out he had typed SPOOL 0 TO QUEUE HP at the console.  In the print server manual it states that "These assignments set up default print queues for NPRINT and CAPTURE and support applications that make calls to printer numbers rather than to queues.  What isn't mentioned in the manuals is the fact that this command can be entered into the AUTOEXEC.NCF in v3.11 and then will automatically set the default queue.  So when the user types CAPTURE with no parameters this queue will be set as the queue being captured to.  I had him take out the SPOOL command and all is well.
  9020.  
  9021.  
  9022.  
  9023.  
  9024. FYI:    Using 3C501 Cards In NetWare v3.11 Workstations
  9025.                                      FYI
  9026.  
  9027. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9028.  
  9029.           TITLE:    Using 3C501 Cards In NetWare v3.11 Workstations
  9030.    DOCUMENT ID#:    FYI.P.5862
  9031.            DATE:    21MAR92
  9032.         PRODUCT:    NetWare
  9033. PRODUCT VERSION:    v3.11
  9034.      SUPERSEDES:    NA
  9035.  
  9036.         SYMPTOM:    Using 3C501 Cards In NetWare v3.11 Workstations
  9037.  
  9038. ISSUE/PROBLEM
  9039.  
  9040.     I have had questions on the issue of running 3c501 cards with NetWare v3.11.
  9041.  
  9042. SOLUTION
  9043.  
  9044.     You can use them on the workstation if you use the odi drivers.  They also asked about using it on a v3.11 file server.  We do not recommend it.  It is an old card and would be a very slow server NIC.
  9045.  
  9046.  
  9047.  
  9048.  
  9049. FYI:    Epson Dot Matrix Problems Off LPT2
  9050.                                      FYI
  9051.  
  9052. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9053.  
  9054.           TITLE:    Epson Dot Matrix Problems Off LPT2
  9055.    DOCUMENT ID#:    FYI.P.5861
  9056.            DATE:    21MAR92
  9057.         PRODUCT:    NetWare
  9058. PRODUCT VERSION:    v2.2
  9059.      SUPERSEDES:    NA
  9060.  
  9061.         SYMPTOM:    Having problems printing with LPT2
  9062.  
  9063. ISSUE/PROBLEM
  9064.  
  9065.     Customer has a 386/33 clone and has an HP Laserjet running off LPT1 and seems to print fine. On LPT2 he has an Epson MX1000 Dot Matrix and it will print one line and then take 5 minutes to print a second.
  9066.  
  9067. SOLUTION
  9068.  
  9069.     Had him go into PCONSOLE and set the interrupts to No and it printed just fine. Suggested that this will work fine but he still has an interrupt problem on LPT2.
  9070.  
  9071.  
  9072.  
  9073.  
  9074. FYI:    Workstations Hang When WS Reboots. Locked DBF Files
  9075.                                      FYI
  9076.  
  9077. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9078.  
  9079.           TITLE:    Workstations Hang When WS Reboots. Locked DBF Files
  9080.    DOCUMENT ID#:    FYI.P.5887
  9081.            DATE:    20MAR92
  9082.         PRODUCT:    NetWare
  9083. PRODUCT VERSION:    v3.11
  9084.      SUPERSEDES:    NA
  9085.  
  9086.         SYMPTOM:    Workstations would hang when a workstation was rebooted.
  9087.  
  9088. ISSUE/PROBLEM
  9089.  
  9090.     The customer would have several workstations in a database application. He wanted to test TTS, so he would reboot one machine. He was surprised to see that the rest of the machines would hang until he loads IPX on the rebooted machine.  He thought that there was a bug in our code or in FoxPro.
  9091.  
  9092. SOLUTION
  9093.  
  9094.     The machines were hanging because the rebooted machine's connection still had 3 dbf files locked and when the other workstations would try to access them they would hang. We talked with engineering and they said that those locks wouldn't be released until a destroy connection was performed. So he could either reload IPX on the rebooted machine or wait until watchdog cleared the connection. The customer didn't like waiting 15 min. so we informed him about the set parameters for the watchdog.
  9095.  
  9096.     A side note about TTS is that if a transaction hasn't completed when a destroy connection is performed the transaction is rolled back to its last known state. So the customer would have to have some way to take a picture of the data before and after the transaction to check TTS. Then when he rebooted the machine he could clear the workstation then compare the snapshot of the data before with the current data to verify the verification.
  9097.  
  9098.  
  9099.  
  9100.  
  9101. FYI:    Server <Old Server Name> Is Unknown At This Time
  9102.                                      FYI
  9103.  
  9104. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9105.  
  9106.           TITLE:    Server <Old Server Name> Is Unknown At This Time
  9107.    DOCUMENT ID#:    FYI.P.5883
  9108.            DATE:    20MAR92
  9109.         PRODUCT:    NetWare
  9110. PRODUCT VERSION:    v3.11
  9111.      SUPERSEDES:    NA
  9112.  
  9113.         SYMPTOM:    Received the error: Server <old server name> is unknown at this time, when doing a CAPTURE with no server specified.
  9114.  
  9115. ISSUE/PROBLEM
  9116.  
  9117.     After upgrading and changing the name of the server, if a CAPTURE was done without specifying a server name, the machine would beep four (4) times and then give the above error message.
  9118.  
  9119. SOLUTION
  9120.  
  9121.     Found a PRINTCON.DAT file in each of 3 MAIL directories.  After deleting those files the problem was gone.  This could have also been resolved by updating the server name in those print jobs through PRINTCON.
  9122.  
  9123.  
  9124.  
  9125.  
  9126. FYI:    Range Of Error Severity Levels. NetWare v3.11
  9127.                                      FYI
  9128.  
  9129. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9130.  
  9131.           TITLE:    Range Of Error Severity Levels. NetWare v3.11
  9132.    DOCUMENT ID#:    FYI.P.5880
  9133.            DATE:    20MAR92
  9134.         PRODUCT:    NetWare
  9135. PRODUCT VERSION:    v3.11
  9136.      SUPERSEDES:    NA
  9137.  
  9138.         SYMPTOM:    NA
  9139.  
  9140. ISSUE/PROBLEM
  9141.  
  9142.     What is the range of error severity levels at the console and what does each level mean?
  9143.  
  9144. SOLUTION
  9145.  
  9146.     After cross-referencing a list from the NetWare 386 Support Routines book and a list from an Appnote in the NSE, I come up with the following list:
  9147.  
  9148.     Level   Severity            Description
  9149.  
  9150.        0    Informational      Indicates attained thresholds; includes    counters & gauges.
  9151.  
  9152.        1    Warning          Configuration errors and so on.  No damage.
  9153.  
  9154.        2    Recoverable          Hot Fix disk and so on.  Work-around made.
  9155.  
  9156.        3    Critical          Disk mirror failure and so on.  Fix-up    attempted.
  9157.  
  9158.        4    Fatal/Abend          Resource fatally affected; server shut down.
  9159.  
  9160.        5    Operation-Aborted  Operation cannot complete; cause unknown.
  9161.  
  9162.  
  9163.  
  9164.  
  9165. FYI:    Trustee Assignments Not Transferring To Backup Server
  9166.                                      FYI
  9167.  
  9168. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9169.  
  9170.           TITLE:    Trustee Assignments Not Transferring To Backup Server
  9171.    DOCUMENT ID#:    FYI.P.5879
  9172.            DATE:    20MAR92
  9173.         PRODUCT:    NetWare
  9174. PRODUCT VERSION:    v3.11
  9175.      SUPERSEDES:    NA
  9176.  
  9177.         SYMPTOM:    Trustee Assignments Not Transferring To Backup Server
  9178.  
  9179. ISSUE/PROBLEM
  9180.  
  9181.     Customer backed up FS1 to tape.  Renamed FS2 (the backup server) to FS1. Restored to FS2.  The trustee assignments didn't transfer.   We were not sure that EMSAVE 3.03 has a Directory Entry problem, or if it was just a fluke that no trustee's were transferred.
  9182.  
  9183. SOLUTION
  9184.  
  9185.     Use NBACKUP to dos device.  Choose to backup entire directory structure and for files to exclude *.*, and *.  This will back up the trustee's only.  Restore this to the new fs then backup and restore data by tape.
  9186.  
  9187.  
  9188.  
  9189.  
  9190. FYI:    Error Writing New Transactional Backout File
  9191.                                      FYI
  9192.  
  9193. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9194.  
  9195.           TITLE:    Error Writing New Transactional Backout File
  9196.    DOCUMENT ID#:    FYI.P.5877
  9197.            DATE:    20MAR92
  9198.         PRODUCT:    NetWare
  9199. PRODUCT VERSION:    v2.2
  9200.      SUPERSEDES:    NA
  9201.  
  9202.         SYMPTOM:    Getting error "ABEND: Error Writing New Transactional Backout File."
  9203.  
  9204. ISSUE/PROBLEM
  9205.  
  9206.     Volume SYS: was near full when a custodian decided to pull the power on this server.  Re-booting the server resulted in the above error. VREPAIR didn't help.
  9207.  
  9208. SOLUTION
  9209.  
  9210.     Re-installed the NetWare v2.2 OS as nondedicated so that TTS could be disabled.  After that the f/s came up and files could be deleted.  Alternatively, On-Track has a utility that deletes files on a downed server.
  9211.  
  9212.  
  9213.  
  9214.  
  9215. FYI:    Emerald Backup Showing Out Of Disk Space
  9216.                                      FYI
  9217.  
  9218. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9219.  
  9220.           TITLE:    Emerald Backup Showing Out Of Disk Space
  9221.    DOCUMENT ID#:    FYI.P.5868
  9222.            DATE:    20MAR92
  9223.         PRODUCT:    NetWare
  9224. PRODUCT VERSION:    v3.11
  9225.      SUPERSEDES:    NA
  9226.  
  9227.         SYMPTOM:    Emerald backup showing: Out of disk space.
  9228.  
  9229. ISSUE/PROBLEM
  9230.  
  9231.     Emerald backup showed: Out of disk space, when there was still space on the volume.
  9232.  
  9233. SOLUTION
  9234.  
  9235.     Emerald said it is possible that when he was backing up he was running out of disk space because of the temporary files created and deleted.  Needs to increase disk space.  Or perhaps use the SET parameter: SET IMMEDIATE PURGE OF DELETED FILES = ON so those deleted files will not take up disk space.
  9236.  
  9237.  
  9238.  
  9239.  
  9240. FYI:    Two SYS Volumes After Adding Drive To Existing Server
  9241.                                      FYI
  9242.  
  9243. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9244.  
  9245.           TITLE:    Two SYS Volumes After Adding Drive To Existing Server
  9246.    DOCUMENT ID#:    FYI.P.5865
  9247.            DATE:    20MAR92
  9248.         PRODUCT:    NetWare
  9249. PRODUCT VERSION:    v3.11
  9250.      SUPERSEDES:    NA
  9251.  
  9252.         SYMPTOM:    Two SYS volumes.
  9253.  
  9254. ISSUE/PROBLEM
  9255.  
  9256.     Customer added a drive that had a 386 partition and Volume SYS, to an existing server.  When the server booted there were two SYS volumes. Customer saw some errors and turned off the power.
  9257.  
  9258. SOLUTION
  9259.  
  9260.     Customer removed the new Drive with volume sys on it and had to run VREPAIR to bring the server backup.   Customer lost some data on existing volumes.
  9261.  
  9262.     I set up a scenario like the one above.   We wanted to see what would happen and what errors occurred.   In this test case no data was lost and VREPAIR didn't need to be run. The following messages were displayed when mounting volume sys:
  9263.  
  9264.          All mirrored partition on this system are synchronized.
  9265.          Warning: Volume SYS has multiple sync definitions all
  9266.          Definitions except 1 discarded.
  9267.          Warning: Definitions for sysc 0 of volume SYS removed
  9268.  
  9269.     In this case.  Volume SYS should be unmounted and the new drive should have its partition deleted.  Then volume sys can be mounted.
  9270.  
  9271.  
  9272.  
  9273.  
  9274. FYI:    "Disk Error Press Return.." Printing NetWare Lite
  9275.                                      FYI
  9276.  
  9277. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9278.  
  9279.           TITLE:    "Disk Error Press Return.." Printing NetWare Lite
  9280.    DOCUMENT ID#:    FYI.P.5897
  9281.            DATE:    19MAR92
  9282.         PRODUCT:    NetWare Lite
  9283. PRODUCT VERSION:    v1.0
  9284.      SUPERSEDES:    NA
  9285.  
  9286.         SYMPTOM:    Getting "Disk Error Press Return.." when printing under NetWare Lite
  9287.  
  9288. ISSUE/PROBLEM
  9289.  
  9290.     The user had two client servers up and running.  One had the printer attached and also had the applications on it.  When a user on the other server would try to print from the application they would get the error: "Disk error press return to try again".  When they pressed return they were put back at the f: prompt and then when they did a directory they couldn't see anything there.  They would have to reboot the machines to Get up and running again.  If they tried the same thing from the server with the application and the printer they would lose connection with the other server.
  9291.  
  9292. SOLUTION
  9293.  
  9294.     We had him load the patches NWL004.ZIP but it had no affect.  We then had him fax in his STARTNET.BAT NET.CFG AUTOEXEC.BAT and CONFIG.SYS.  Everything was normal except he was using int 5 and I/O of 360.  We had him change to 300 on the I/O and he is working.
  9295.  
  9296.  
  9297.  
  9298.  
  9299. FYI:    Cannot See Files In System Directory After Arcserve
  9300.                                      FYI
  9301.  
  9302. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9303.  
  9304.           TITLE:    Cannot See Files In System Directory After Arcserve Backup
  9305.    DOCUMENT ID#:    FYI.P.5854
  9306.            DATE:    19MAR92
  9307.         PRODUCT:    NetWare
  9308. PRODUCT VERSION:    v3.11
  9309.      SUPERSEDES:    NA
  9310.  
  9311.         SYMPTOM:    Users could not see any files in system directory unless they had supervisor rights.
  9312.  
  9313. ISSUE/PROBLEM
  9314.  
  9315.     Customer upgraded from NetWare v2.15 to v3.11 and restored from Cheyenne Arcserve Backup. After the restore users could only see four or five files in the SYSTEM directory.
  9316.  
  9317. SOLUTION
  9318.  
  9319.     Copied all files from the SYSTEM directory to a temporary directory then back again.  All files could then be seen.
  9320.  
  9321.  
  9322.  
  9323.  
  9324. FYI:    Unable to use two CNET 190 LAN Cards
  9325.                                      FYI
  9326.  
  9327. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9328.  
  9329.           TITLE:    Unable to use two CNET 190 LAN Cards
  9330.    DOCUMENT ID#:    FYI.P.5850
  9331.            DATE:    19MAR92
  9332.         PRODUCT:    NetWare
  9333. PRODUCT VERSION:    v3.11
  9334.      SUPERSEDES:    NA
  9335.  
  9336.         SYMPTOM:    Unable to use two CNET LAN cards in the server.
  9337.  
  9338. ISSUE/PROBLEM
  9339.  
  9340.     Customer has two CNET 190 LAN cards.  Each card would work by itself, but if used together, users could only access one card.
  9341.  
  9342. SOLUTION
  9343.  
  9344.     Obtained the latest server LAN driver from CNET. (No rev given.)
  9345.  
  9346.  
  9347.  
  9348.  
  9349. FYI:    "Unable To Open Swap File" NSE Update CD ROM
  9350.                                      FYI
  9351.  
  9352. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9353.  
  9354.           TITLE:    "Unable To Open Swap File" NSE Update CD ROM
  9355.    DOCUMENT ID#:    FYI.P.5845
  9356.            DATE:    19MAR92
  9357.         PRODUCT:    NetWare Support Encyclopedia
  9358. PRODUCT VERSION:    NA
  9359.      SUPERSEDES:    NA
  9360.  
  9361.         SYMPTOM:    Error: UNABLE TO OPEN SWAP FILE.
  9362.  
  9363. ISSUE/PROBLEM
  9364.  
  9365.     This error would appear as customer tried to download selected files from NSE PRO update CD ROM.
  9366.  
  9367. SOLUTION
  9368.  
  9369.     Customer's default directory was set to the CD ROM drive so Folio was trying to open a swap file on the CD ROM.  He needed to change his 'Temp File Path', under Options -> User Defaults in Folio, to a directory where he had Read/Write rights.  Another solution would be to map a search drive to the CD ROM, then execute the NSE from a directory where you have Read/Write rights.
  9370.  
  9371.  
  9372.  
  9373.  
  9374. FYI:    "ScanProperty Returned Error Code 255..." LANSPOOL
  9375.                                      FYI
  9376.  
  9377. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9378.  
  9379.           TITLE:    "ScanProperty Returned Error Code 255..." LANSPOOL VAP
  9380.    DOCUMENT ID#:    FYI.P.5842
  9381.            DATE:    19MAR92
  9382.         PRODUCT:    NetWare
  9383. PRODUCT VERSION:    v2.15 , v3.11
  9384.      SUPERSEDES:    NA
  9385.  
  9386.         SYMPTOM:    ScanProperty returned error code 255. Bindery backup terminated.
  9387.  
  9388. ISSUE/PROBLEM
  9389.  
  9390.     Doing upgrade from NetWare v2.15 to v3.11, transfer method. While transferring it would get to the point of doing the bindery and then end with the above error. BINDFIX did not help.  We had the customer try backing up the bindery to a local hard drive and they got the same error, however when they pressed escape it revealed the object that was being transferred: "properties lanspool".
  9391.  
  9392. SOLUTION
  9393.  
  9394.     Went into PCONSOLE to delete the print server and received an error 255.  Tried it again and deleted the print server successfully.  The UPGRADE was then able to complete without error.
  9395.  
  9396.  
  9397.  
  9398.  
  9399. FYI:     Using xRestrict on a VIEW with a Restriction
  9400.                                      FYI
  9401.  
  9402. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9403.  
  9404.           TITLE:    Using xRestrict on a VIEW with a Restriction
  9405.    DOCUMENT ID#:    FYI.A.2108
  9406.            DATE:    19MAR92
  9407.         PRODUCT:    XQL
  9408. PRODUCT VERSION:    2.11
  9409.      SUPERSEDES:    NA
  9410.  
  9411.         SYMPTOM:    NA
  9412.  
  9413.  
  9414. ISSUE/PROBLEM
  9415.  
  9416.     What happens when a restriction is placed on a recalled VIEW that was previously defined with a restriction?  The answer to this question depends on which type of XQL functions is being used.
  9417.  
  9418. SOLUTION
  9419.  
  9420.     Suppose a VIEW is created with a restriction defined as follows:
  9421.  
  9422.             CREATE VIEW V_ZIP AS
  9423.                SELECT * FROM PATIENTS
  9424.                WHERE ZIP = "78759"
  9425.  
  9426.     With XQL Manager level calls, the statement:
  9427.  
  9428.            SELECT * FROM V_ZIP
  9429.               WHERE Last^Name BEGINS WITH "A"
  9430.  
  9431.     will result in the new restriction being appended to the existing restriction with an AND operator.  Therefore, records will be retrieved that satisfy both restrictions (ZIP = "78759" AND Last^Name will begin with "A").
  9432.  
  9433.     Using XQL Primitives, an application would perform an xRecall of the VIEW "V_ZIP" and then an xRestrict with the expression 'Last^Name BEGINS WITH "A"'. However, which iOption is specified on the xRestrict call will determine what the overall restriction on the view will be.
  9434.  
  9435.     If the iOption specified in the xRestrict call is set to 1, then the new restriction will replace the previously defined restriction.  If the iOption parameter is set to 0, then the new restriction will be appended to the previous restriction with an AND operator.  In addition, you can also specify an iOption of 0 and precede the restriction statement with the OR operator (|| Last^Name BEGINS WITH "A").  This will cause the new restriction to be appended to the previous restriction with the OR operator.
  9436.  
  9437.  
  9438.  
  9439.  
  9440. FYI:    Using REMOVE DOS within RCONSOLE
  9441.                                      FYI
  9442.  
  9443. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9444.  
  9445.           TITLE:    Using REMOVE DOS within RCONSOLE
  9446.    DOCUMENT ID#:    FYI.P.5834
  9447.            DATE:    18MAR92
  9448.         PRODUCT:    NetWare
  9449. PRODUCT VERSION:    v3.11
  9450.      SUPERSEDES:    NA
  9451.  
  9452.         SYMPTOM:    Using REMOVE DOS when in RCONSOLE hangs server.
  9453.  
  9454. ISSUE/PROBLEM
  9455.  
  9456.     Customer is in RCONSOLE and wanted to use REMOVE DOS, DOWN, and EXIT so the server will warm boot.  Server kept hanging when in RCONSOLE after the DOWN command was given and then could not give the EXIT command to complete the warm boot.
  9457.  
  9458. SOLUTION
  9459.  
  9460.     Put the commands: REMOVE DOS, DOWN, and EXIT in a batch file in the SYSTEM directory and called it DOWNER.NCF.  Running this batch file from RCONSOLE worked to down and reboot the server.
  9461.  
  9462.  
  9463.  
  9464.  
  9465. FYI:    Backup Of Server From Client Hangs Machines.  NetWare Lite
  9466.                                      FYI
  9467.  
  9468. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9469.  
  9470.           TITLE:    Backup Of Server From Client Hangs Machines.  NetWare Lite
  9471.    DOCUMENT ID#:    FYI.P.5832
  9472.            DATE:    18MAR92
  9473.         PRODUCT:    NetWare Lite
  9474. PRODUCT VERSION:    v1.0
  9475.      SUPERSEDES:    NA
  9476.  
  9477.         SYMPTOM:    Backup of server from client hangs machines.
  9478.  
  9479. ISSUE/PROBLEM
  9480.  
  9481.     Running DOS Backup command would hang all computers during the backup.  They had a Server/Client node and two Client nodes.
  9482.  
  9483.     He was using DR-DOS 6.0.  They would hang all machines on the network, sometimes on the 2nd diskette, sometimes on the 40th diskette.  He had this problem on all clients.  They were backing up 40MB of data.  He could backup the server successfully when running Backup on the Server/Client node.
  9484.  
  9485. SOLUTION
  9486.  
  9487.     Switched to MS DOS 5.0 and had no problems.
  9488.  
  9489.     We were unable to duplicate this problem in the lab.
  9490.  
  9491.  
  9492.  
  9493.  
  9494. FYI:    Problems Seen With Larger Disks And NetWare 286
  9495.                                      FYI
  9496.  
  9497. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9498.  
  9499.           TITLE:    Problems Seen With Larger Disks And NetWare 286
  9500.    DOCUMENT ID#:    FYI.P.5829
  9501.            DATE:    18MAR92
  9502.         PRODUCT:    NetWare
  9503. PRODUCT VERSION:    v2.15, v2.2
  9504.      SUPERSEDES:    NA
  9505.  
  9506.         SYMPTOM:    Large drives not working with 286 NetWare.
  9507.  
  9508. ISSUE/PROBLEM
  9509.  
  9510.     As larger disks (1.2 gigabytes +) have become more commonplace we see customers trying to use them with 286 NetWare.  Their problems range from insufficient file service processes to problems with directory entries and any number of other problems.
  9511.  
  9512. SOLUTION
  9513.  
  9514.     Customers need to understand some things about the design of 286 NetWare.
  9515.  
  9516.     1.    When 286 was developed some of the larger hard drives were 40 Mbyte.  It was designed to support single devices about 10 times that size or 400 Mbytes.  It can more easily manage multiple devices of 400 Mbytes than a single device which is much larger.
  9517.  
  9518.     2.    When we tested NetWare v2.15c the largest drives were 300 - 500 Mbytes.  Even v2.2 had very little testing with drives larger than a gigabyte.
  9519.  
  9520.     3.    The 286 architecture will always pose problems because of the segmented memory.
  9521.  
  9522.     A 1.2 GByte drive (in my opinion) pushes 286 NetWare to its limit. The formula to calculate TOTAL(max) directory entries, see FYI.P.3452, is given by:
  9523.  
  9524.     T = (3066 - 20V - M) * 32 where V=number of volumes, M=total
  9525.                           megabytes.
  9526.  
  9527.     Note that as the number of volumes increases and the drive size increases, the total number of directory entries will decrease.  Since the formula applies to each disk, a customer would have more than twice as many directory entries if he used two 600 Mbyte drives instead of one 1.2 GByte drive.
  9528.  
  9529.     When customers get to the 1.2 GByte drive size in 286 NetWare and they are having problems, they need to move on to 386 NetWare.  Some v2.15c customers who have too few FSPs have used the PROCES.ARC patch to get more FSPs.  However, that takes memory from DMP#1 and may shift rather than solve the problem.  Again, the answer for the customer is 386 NetWare.
  9530.  
  9531.  
  9532.  
  9533.  
  9534. FYI:    Different Options Available For Adaptec Disk Drivers
  9535.                                      FYI
  9536.  
  9537. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9538.  
  9539.           TITLE:    Different Options Available For Adaptec Disk Drivers
  9540.    DOCUMENT ID#:    FYI.P.5828
  9541.            DATE:    18MAR92
  9542.         PRODUCT:    NetWare
  9543. PRODUCT VERSION:    v2.2
  9544.      SUPERSEDES:    NA
  9545.  
  9546.         SYMPTOM:    Choosing option 0 in INSTALL gets an error.
  9547.  
  9548. ISSUE/PROBLEM
  9549.  
  9550.     Using an Adaptec AHA1540/1640 disk driver.
  9551.  
  9552.     Choosing option 0 in INSTALL for the disk driver would give them an error message that they had chosen a mix of ISA bus and MCA bus.
  9553.  
  9554. SOLUTION
  9555.  
  9556.     Customer Chose option 1 for the disk driver and no more problems.  It turns out that option 0 is a microchannel option.  Options 1-18 are for standard ISA and EISA.  Options 19 and up are options for multiple drives on one controller.  These later options are enhancements that make a single controller card act or look like it is multiple controllers.
  9557.  
  9558.  
  9559.  
  9560.  
  9561. FYI:    "Lost Hardware Interrupt"  NetWare v3.11, CNET
  9562.                                      FYI
  9563.  
  9564. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9565.  
  9566.           TITLE:    "Lost Hardware Interrupt"  NetWare v3.11, CNET 190st
  9567.    DOCUMENT ID#:    FYI.P.5826
  9568.            DATE:    18MAR92
  9569.         PRODUCT:    NetWare
  9570. PRODUCT VERSION:    v3.11
  9571.      SUPERSEDES:    NA
  9572.  
  9573.         SYMPTOM:    Interrupt Controller detected a lost hardware interrupt.
  9574.  
  9575. ISSUE/PROBLEM
  9576.  
  9577.     After loading the 190A386.LAN driver for the CNET 190st 16-bit Arcnet card on the server, they would get the lost hardware interrupt error.  Running Comcheck between two machines with CNET's workstation driver would also fail.
  9578.  
  9579. SOLUTION
  9580.  
  9581.     Had him use the Trxnet drivers at both the server and the workstations, and everything seems to work fine.
  9582.  
  9583.  
  9584.  
  9585.  
  9586. FYI:    Abend: Error Adding Generic SCSI. NetWare v2.2
  9587.                                      FYI
  9588.  
  9589. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9590.  
  9591.           TITLE:    Abend: Error Adding Generic SCSI. NetWare v2.2 INSTALL
  9592.    DOCUMENT ID#:    FYI.P.5821
  9593.            DATE:    18MAR92
  9594.         PRODUCT:    NetWare
  9595. PRODUCT VERSION:    v2.2
  9596.      SUPERSEDES:    NA
  9597.  
  9598.         SYMPTOM:    "ABEND: Error Adding Generic SCSI" when installing v2.2.
  9599.  
  9600. ISSUE/PROBLEM
  9601.  
  9602.     Using a Maxtor 7120S SCSI drive with a Novell DCB.
  9603.  
  9604.     During the installation of v2.2, the customer would get the error above.  All hardware was verified as being setup properly.
  9605.  
  9606. SOLUTION
  9607.  
  9608.     In pursuing this escalation, we checked with IMSP to see whether or not this new drive had been certified.  It had just passed certification with an Adaptec 1540 controller since Maxtor had submitted it with that controller.  IMSP suggested that we try choosing CDC WREN III HALF-HEIGHT instead of Generic SCSI, but it didn't work.  Customer chose to use an Always IN2000 controller and it worked.
  9609.  
  9610.  
  9611.  
  9612.  
  9613. FYI:     Problem with WATCOM C/386 v9.0
  9614.                                      FYI
  9615.  
  9616. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9617.  
  9618.           TITLE:    Problem with WATCOM C/386 v9.0
  9619.    DOCUMENT ID#:    FYI.A.3141
  9620.            DATE:    18MAR92
  9621.         PRODUCT:    Network C for NLMs
  9622. PRODUCT VERSION:    SDKb
  9623.      SUPERSEDES:    NA
  9624.  
  9625.         SYMPTOM:    Invalid code generation
  9626.  
  9627.  
  9628. ISSUE/PROBLEM
  9629.  
  9630.     There is a bug in the WATCOM C/386 v9.0 compiler that causes it to generate invalid code when optimizing.  In the following example, TestA() works, but TestB() and TestC() both fail.  All of them work if the example is compiled with C/386 v8.5.
  9631.  
  9632.        #include <stdio.h>
  9633.        #include <string.h>
  9634.        #include <conio.h>
  9635.        #include <ctype.h>
  9636.  
  9637.        /*
  9638.        compiled with /ez/d1/e99/oail/3s/fpc/w4
  9639.        */
  9640.  
  9641.        void testB(LONG x, BYTE  *name, BYTE *output);
  9642.        void testA(LONG x, BYTE  *name, BYTE *output);
  9643.  
  9644.        main()
  9645.        {
  9646.        int i;
  9647.        BYTE name[6];
  9648.        BYTE output[32];
  9649.        long x = 0x01020304;
  9650.  
  9651.        strcpy(name, "PAULA");
  9652.        testC(x, name, output);
  9653.        for(i = 0; i < 32; i++)
  9654.        printf("%.2x", output[i]);
  9655.        printf("\n");
  9656.  
  9657.        strcpy(name, "PAULA");
  9658.        testB(x, name, output);
  9659.        for(i = 0; i < 32; i++)
  9660.        printf("%.2x", output[i]);
  9661.        printf("\n");
  9662.  
  9663.        strcpy(name, "PAULA");
  9664.        testA(x, name, output);
  9665.        for(i = 0; i < 32; i++)
  9666.        printf("%.2x", output[i]);
  9667.        printf("\n");
  9668.        }
  9669.  
  9670.        void testC(LONG x, BYTE  *name, BYTE *output)
  9671.        {
  9672.        BYTE    tempBuffer[32];
  9673.        WORD    index;
  9674.  
  9675.            memset(tempBuffer, 0, 32);
  9676.            for (index = 0; index < 32; index++)
  9677.               tempBuffer[index] ^= *(((BYTE *)&x) + (index & 0x03));
  9678.            memcpy(output, tempBuffer, 32);
  9679.        }
  9680.  
  9681.        void testB(LONG x, BYTE  *name, BYTE *output)
  9682.        {
  9683.        BYTE    tempBuffer[32];
  9684.        WORD    index;
  9685.  
  9686.            memset(tempBuffer, 0, 32);
  9687.            for (index = 0; index < 32; index++)
  9688.               tempBuffer[index] ^= ((BYTE *)&x)[index & 0x03];
  9689.            memcpy(output, tempBuffer, 32);
  9690.        }
  9691.  
  9692.        void testA(LONG x, BYTE  *name, BYTE *output)
  9693.        {
  9694.        BYTE    tempBuffer[32];
  9695.        WORD    index;
  9696.        BYTE  *ptr;
  9697.  
  9698.            memset(tempBuffer, 0, 32);
  9699.            for (index = 0; index < 32; index++)
  9700.            {
  9701.                ptr = (BYTE *) &x;
  9702.                tempBuffer[index] ^= *(ptr + (index & 0x03));
  9703.            }
  9704.            memcpy(output, tempBuffer, 32);
  9705.        }
  9706.  
  9707.  
  9708. SOLUTION
  9709.  
  9710.     Use the format described in the TestA() example.
  9711.  
  9712.  
  9713.  
  9714.  
  9715. FYI:     Patch for CLib v3.11 readdir() Problem
  9716.                                      FYI
  9717.  
  9718. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9719.  
  9720.           TITLE:    Patch for CLib v3.11 readdir() Problem
  9721.    DOCUMENT ID#:    FYI.A.3140
  9722.            DATE:    18MAR92
  9723.         PRODUCT:    Network C for NLMs
  9724. PRODUCT VERSION:    SDKb
  9725.      SUPERSEDES:    NA
  9726.  
  9727.         SYMPTOM:    Server abends when readdir() made to remote 2.x server
  9728.  
  9729.  
  9730. ISSUE/PROBLEM
  9731.  
  9732.     Calling the function readdir() against a remote 2.x server abends the local server under certain circumstances.  This can be reproduced by creating a directory path with many levels totaling 130 bytes.
  9733.  
  9734. SOLUTION
  9735.  
  9736.     A patch, called CLIBP002.NLM is available which corrects this problem.  It is a PATCHMAN-Compatible patch, and is on NovDev, in Library 7, under the name CLP002.ZIP.  Developers can distribute this patch to their end-users, if they are using readdir() to remote 2.x servers in their applications.  This patch also requires PATCH311.NLM, available in NOVLIB Library 4, under the name PAT311.ZIP.
  9737.  
  9738.  
  9739.  
  9740.  
  9741. FYI:     Wildcards Passed to access()
  9742.                                      FYI
  9743.  
  9744. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9745.  
  9746.           TITLE:    Wildcards Passed to access()
  9747.    DOCUMENT ID#:    FYI.A.1652
  9748.            DATE:    18MAR92
  9749.         PRODUCT:    Network C for NLMs
  9750. PRODUCT VERSION:    SDKb
  9751.      SUPERSEDES:    NA
  9752.  
  9753.         SYMPTOM:    NA
  9754.  
  9755.  
  9756. ISSUE/PROBLEM
  9757.  
  9758.     The function, access(), works with wildcards.
  9759.  
  9760. SOLUTION
  9761.  
  9762.     Although access() is not an ANSI standard function, it is a standard function  for DOS and UNIX compilers.  The implementation under DOS for the major  compiler manufacturers is to allow wildcards in the file specification.   This is also true for the CLIB implementation.  For example,
  9763.  
  9764.       access("\\a*.*", ACCESS_RD);
  9765.  
  9766.     will return successfully if any file exists in the root of the current  directory starting with the letter 'A' and you have access to it.
  9767.  
  9768.  
  9769.  
  9770.  
  9771. FYI:    Unable To Print From Postscript With PRFIX Loaded
  9772.                                      FYI
  9773.  
  9774. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9775.  
  9776.           TITLE:    Unable To Print From Postscript With PRFIX Loaded
  9777.    DOCUMENT ID#:    FYI.P.5817
  9778.            DATE:    17MAR92
  9779.         PRODUCT:    NetWare
  9780. PRODUCT VERSION:    v2.2
  9781.      SUPERSEDES:    NA
  9782.  
  9783.         SYMPTOM:    Garbage printing from Postscript with PRFIX loaded
  9784.  
  9785. ISSUE/PROBLEM
  9786.  
  9787.     NetWare v2.2 with an HPIIp LaserJet printer that needed run in PCL and PS modes.  He had a PS cartridge for the printer that he had installed and had setup a print device in the Printdef utility.  When he attempted to run a job from his Microsoft Word application in postscript mode, it would print garbage.
  9788.  
  9789. SOLUTION
  9790.  
  9791.     This customer had upgraded from NetWare v2.0a.  The batch file at the workstation that set up their printing was loading the file PRFIX which was a patch for 2.0a printing.  Once he removed the PRFIX from his batch file the printer would print well in postscript mode.
  9792.  
  9793.  
  9794.  
  9795.  
  9796. FYI:    Unable To Maintain Connections To AS/400 And Server
  9797.                                      FYI
  9798.  
  9799. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9800.  
  9801.           TITLE:    Unable To Maintain Connections To AS/400 And Server
  9802.    DOCUMENT ID#:    FYI.P.5804
  9803.            DATE:    17MAR92
  9804.         PRODUCT:    NetWare
  9805. PRODUCT VERSION:    v3.11
  9806.      SUPERSEDES:    NA
  9807.  
  9808.         SYMPTOM:    Customer could not maintain simultaneous connections to AS/400 and NetWare Server.
  9809.  
  9810. ISSUE/PROBLEM
  9811.  
  9812.     Using IBM Lan Support 1.2, with the LANSUP ODI driver.  He is using Irmatrac Token-Ring boards from DCA and the TOK380.DCA driver (version 1.11).  Also using AS/400 PC Support v2.0.  He could start a session to the AS/400, but if he tried to attach to the file server, the AS/400 connection would be lost.  We found that all was well until he loaded LANSUP.COM.
  9813.  
  9814. SOLUTION
  9815.  
  9816.     Contacted DCA and found that they now have a new TOK380.DCA driver (v1.2).  The solved the customers problem.
  9817.  
  9818.  
  9819.  
  9820.  
  9821. FYI:    "Extended Error 59" NOTEBOOK.EXE
  9822.                                      FYI
  9823.  
  9824. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9825.  
  9826.           TITLE:    "Extended Error 59" NOTEBOOK.EXE
  9827.    DOCUMENT ID#:    FYI.P.5803
  9828.            DATE:    17MAR92
  9829.         PRODUCT:    NetWare Lite
  9830. PRODUCT VERSION:    v1.0
  9831.      SUPERSEDES:    NA
  9832.  
  9833.         SYMPTOM:    Getting "Extended error 59" running NoteBook.exe
  9834.  
  9835. ISSUE/PROBLEM
  9836.  
  9837.     When customer launched notebook.exe from more than one client they got the above error. They have three clients, and 1 client/server.
  9838.  
  9839. SOLUTION
  9840.  
  9841.     Increased client tasks from 10 to 20, and it worked. This is done by Going into the Net Utility, Select Supervisor Network, Server Configuration.  The client tasks are on the right side of the display.  Change the future value to the desired number.  Then reboot for the change to take effect.
  9842.  
  9843.  
  9844.  
  9845.  
  9846. FYI:     LogPhysicalRecord Does Not Wait
  9847.                                      FYI
  9848.  
  9849. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9850.  
  9851.           TITLE:    LogPhysicalRecord Does Not Wait
  9852.    DOCUMENT ID#:    FYI.A.3359
  9853.            DATE:    17MAR92
  9854.         PRODUCT:    Network C for NLMs
  9855. PRODUCT VERSION:    20b
  9856.      SUPERSEDES:    NA
  9857.  
  9858.         SYMPTOM:    Immediate return even though timeout specified if record locked
  9859.  
  9860.  
  9861. ISSUE/PROBLEM
  9862.  
  9863.     The LogPhysicalRecord function will not wait the specified timeout if it  tries to access a record previously locked by itself or another NLM.  The  problem is connection-oriented and does not appear if the NLM logs into a  connection, rather than using the default connection zero.
  9864.  
  9865. SOLUTION
  9866.  
  9867.     The current work-around is to login to a separate connection for each NLM. This will allow multiple NLMs to use LogPhysicalRecord against the same  record and wait the specified timeout.
  9868.  
  9869.  
  9870.  
  9871.  
  9872. FYI:     QMS JobType
  9873.                                      FYI
  9874.  
  9875. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9876.  
  9877.           TITLE:    QMS JobType
  9878.    DOCUMENT ID#:    FYI.A.2659
  9879.            DATE:    17MAR92
  9880.         PRODUCT:    NetWare C for Windows
  9881. PRODUCT VERSION:    1.22
  9882.      SUPERSEDES:    NA
  9883.  
  9884.         SYMPTOM:    JobType in JobStruct needs to be IntSwapped
  9885.  
  9886.  
  9887. ISSUE/PROBLEM
  9888.  
  9889.     In the C-Interface for Windows, the JobType field in the JobStruct structure  is not being swapped with the IntSwap() function.  As an example, setting  JobType to the value one will force the type to actually become 256, which  is incorrect.
  9890.  
  9891. SOLUTION
  9892.  
  9893.     Use the IntSwap() function on the JobType value.
  9894.  
  9895.  
  9896.  
  9897.  
  9898. FYI:     Problems with VIPX 1.11
  9899.                                      FYI
  9900.  
  9901. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9902.  
  9903.           TITLE:    Problems with VIPX 1.11
  9904.    DOCUMENT ID#:    FYI.A.2658
  9905.            DATE:    17MAR92
  9906.         PRODUCT:    NetWare C for Windows
  9907. PRODUCT VERSION:    1.22
  9908.      SUPERSEDES:    NA
  9909.  
  9910.         SYMPTOM:    IPXCloseSocket Problems and not Cancelling ECBs
  9911.  
  9912.  
  9913. ISSUE/PROBLEM
  9914.  
  9915.     The IPXCloseSocket function in the C-Interface for Windows 1.22 does not  cancel the ECBs as is documented.
  9916.  
  9917.     A workaround for VIPX 1.10 and the NWIPXSPX.DLL 1.30, was to explictly cancel each ECB that was still posted using the IPXCancelEvent function.  This worked fine until the VIPX 1.11 and NWIPXSPX.DLL 1.31 was introduced.   The IPXCancelEvent for this version returns error 0xF9 in the ECB's status flag field.
  9918.  
  9919. SOLUTION
  9920.  
  9921.     The recommendation at this time is to use the VIPX 1.10 and the NWIPXSPX.DLL 1.30.
  9922.  
  9923.  
  9924.  
  9925.  
  9926. FYI:     NetWare 2.2 Spooler & Non-Dedicated Workstation
  9927.                                      FYI
  9928.  
  9929. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9930.  
  9931.           TITLE:    NetWare 2.2 Spooler & Non-Dedicated Workstation
  9932.    DOCUMENT ID#:    FYI.A.2657
  9933.            DATE:    17MAR92
  9934.         PRODUCT:    NetWare C for Windows
  9935. PRODUCT VERSION:    1.2
  9936.      SUPERSEDES:
  9937.  
  9938.         SYMPTOM:    Spooler very slow
  9939.  
  9940. ISSUE/PROBLEM
  9941.  
  9942.     Problems when the spooler is active.
  9943.  
  9944.     Apparently, if the spooler is busy printing, and the non-dedicated workstation is running an application or waiting for keyboard input, the spooler will slow down considerably, but still functions.
  9945.  
  9946. SOLUTION
  9947.  
  9948.     Using the DOS int 28h Idler interrupt will permit the spooler to do its work at a normal pace.  Essentially, the spooler is not using the protected  mode switch that the non-dedicated workstation usually uses, thus the spooler is dependent on the application to permit it to actually run.
  9949.  
  9950.  
  9951.  
  9952.  
  9953. FYI:    Server Abends With NMI Parity.
  9954.                                      FYI
  9955.  
  9956. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9957.  
  9958.           TITLE:    Server Abends With NMI Parity.
  9959.    DOCUMENT ID#:    FYI.P.5794
  9960.            DATE:    16MAR92
  9961.         PRODUCT:    NetWare
  9962. PRODUCT VERSION:    v3.11
  9963.      SUPERSEDES:    NA
  9964.         SYMPTOM:    Server abending with an NMI parity generated by I/O check
  9965.  
  9966. ISSUE/PROBLEM
  9967.  
  9968.     Compaq 386/33, NetWare v3.11 and Proteon cards cause this problem with the server.  Took all the hardware to an AST and it was fine.  Took the v3.11 back to v3.10 and everything was fine.
  9969.  
  9970. SOLUTION
  9971.  
  9972.     This customer shipped his Compaq off to Compaq and they tested this and could get it to happen consistently with NetWare v3.11, specifically the Compaq 386/33, and any Proteon card (they tried both the 1308 and the pro-net4).  This scenario doesn't seem to work so avoid it.
  9973.  
  9974.  
  9975.  
  9976.  
  9977. FYI:    "Cannot Find BASRUN20.EXE..." Genesis Program, Lite
  9978.                                      FYI
  9979.  
  9980. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  9981.  
  9982.           TITLE:    "Cannot Find BASRUN20.EXE..." Genesis Program, Lite
  9983.    DOCUMENT ID#:    FYI.P.5792
  9984.            DATE:    16MAR92
  9985.         PRODUCT:    NetWare Lite
  9986. PRODUCT VERSION:    v1.0
  9987.      SUPERSEDES:    NA
  9988.  
  9989.         SYMPTOM:    Error:"cannot find basrun20.exe Enter a new path specification:"
  9990.  
  9991. ISSUE/PROBLEM
  9992.  
  9993.     The customer could get 2 clients into their genesis program but the third machine would give them the error "cannot find basrun20.exe Enter a new path specification:" with the NWL004 loaded.
  9994.  
  9995. SOLUTION
  9996.  
  9997.     Increased the number of client tasks and they were able to get all five machines into the network.
  9998.  
  9999.  
  10000.  
  10001.  
  10002. FYI:    Lotus Prints To Local Instead Of Captured Printer
  10003.                                      FYI
  10004.  
  10005. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10006.  
  10007.           TITLE:    Lotus Prints To Local Instead Of Captured Printer
  10008.    DOCUMENT ID#:    FYI.P.5791
  10009.            DATE:    16MAR92
  10010.         PRODUCT:    NetWare Lite
  10011. PRODUCT VERSION:    v1.0
  10012.      SUPERSEDES:    NA
  10013.  
  10014.         SYMPTOM:    Printing from Lotus would go to local printer instead of captured printer.
  10015.  
  10016. ISSUE/PROBLEM
  10017.  
  10018.     NetWare Lite, DOS 5.0 and printing from Lotus.  Jobs would print to the local printer instead of to a captured printer.
  10019.  
  10020. SOLUTION
  10021.  
  10022.     In Lotus do slash -> worksheet -> global -> default -> printer -> interface -> and select 5 (for DOS device LPT1) and that took care of it.
  10023.  
  10024.  
  10025.  
  10026.  
  10027. FYI:    WS Reboots When Print Job Is Sent.
  10028.                                      FYI
  10029.  
  10030. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10031.  
  10032.           TITLE:    WS Reboots When Print Job Is Sent.
  10033.    DOCUMENT ID#:    FYI.P.5789
  10034.            DATE:    16MAR92
  10035.         PRODUCT:    NetWare
  10036. PRODUCT VERSION:    NA
  10037.      SUPERSEDES:    NA
  10038.  
  10039.         SYMPTOM:    Workstation running RPRINTER reboots itself when a print job is sent to it
  10040.  
  10041. ISSUE/PROBLEM
  10042.  
  10043.     Customer is trying to run:
  10044.  
  10045.     (1)    Real World Accounting Software (compiled using Microfocus's Cobol compiler)
  10046.     (2)    XM (Microfocus's extended memory manager)
  10047.     (3)    RPRINTER (w/ a printer attached on the LPT port)
  10048.  
  10049.     All on the same workstation.  Whenever he tries to print a job to the workstation it would reboot itself.   However, if he does not load XM it prints fine.
  10050.  
  10051. SOLUTION
  10052.  
  10053.     He had to set the following environment variable in his AUTOEXEC.BAT:
  10054.  
  10055.               SET XM=+jkqr
  10056.  
  10057.     XM places the program into protected mode and the settings above involve transmitting the protected mode interrupts to real mode interrupts.
  10058.  
  10059.               J = transmits IRQ  1 (keyboard interrupt)
  10060.               K = transmits IRQ  16
  10061.               Q = transmits IRQs 10,17,1a
  10062.               R = transmits IRQs 0-15 (except IRQ 1 )
  10063.  
  10064.  
  10065.  
  10066.  
  10067. FYI:    Abend: Disk Controller Channel 0... v2.2 INSTALL
  10068.                                      FYI
  10069.  
  10070. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10071.  
  10072.           TITLE:    Abend: Disk Controller Channel 0... v2.2 INSTALL
  10073.    DOCUMENT ID#:    FYI.P.5787
  10074.            DATE:    16MAR92
  10075.         PRODUCT:    NetWare
  10076. PRODUCT VERSION:    v2.2
  10077.      SUPERSEDES:    NA
  10078.  
  10079.         SYMPTOM:    "Abend: disk controller channel 0 reset error"
  10080.  
  10081. ISSUE/PROBLEM
  10082.  
  10083.     Received this error consistently during INSTALL after it was completed linking and configuring (from the first screen during installation) and right as it was going to bring up the Ztest screen.  This was when using the IDE driver from IDE286.ZIP.  ISADISK wouldn't work at all because it was a user definable drive type.
  10084.  
  10085. SOLUTION
  10086.  
  10087.     Used ISAREM.ZIP which worked.
  10088.  
  10089.  
  10090.  
  10091.  
  10092. FYI:    "DOS Create Returned Error 3". Defining Printer 0
  10093.                                      FYI
  10094.  
  10095. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10096.  
  10097.           TITLE:    "DOS Create Returned Error 3". Defining Printer 0
  10098.    DOCUMENT ID#:    FYI.P.5786
  10099.            DATE:    16MAR92
  10100.         PRODUCT:    NetWare
  10101. PRODUCT VERSION:    v2.2
  10102.      SUPERSEDES:    NA
  10103.  
  10104.         SYMPTOM:    DOS create returned error 3 Description: System failed to create the file system\00120073\print.000
  10105.  
  10106. ISSUE/PROBLEM
  10107.  
  10108.     Customer was trying to define printer 0 in PCONSOLE under a printserver called PSERVER.  When he hit <ESC> to save the printer configuration the error above was displayed. The shell was current and SHELL.CFG did not have anything out of the ordinary in it.
  10109.  
  10110. SOLUTION
  10111.  
  10112.     Deleted the printserver and all the queues.  Made sure that there were no number directories left by PCONSOLE in the system subdirectory.  Ran BINDFIX.  Recreated the printserver and they were able to define a printer.
  10113.  
  10114.  
  10115.  
  10116.  
  10117. FYI:     Long Function Names
  10118.                                      FYI
  10119.  
  10120. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10121.  
  10122.           TITLE:    Long Function Names
  10123.    DOCUMENT ID#:    FYI.A.3835
  10124.            DATE:    16MAR92
  10125.         PRODUCT:    Network C for NLMs
  10126. PRODUCT VERSION:    SDKb
  10127.      SUPERSEDES:    NA
  10128.  
  10129.         SYMPTOM:    Long Names cause Internal Compiler Error 5 in WATCOM v8.5
  10130.  
  10131.  
  10132. ISSUE/PROBLEM
  10133.  
  10134.     If an application's function names are more than 80 characters long, WATCOM C/386 Compiler v8.5 issues an Error 5: Internal Compiler Error, and the  program is not compiled.  In the 9.0 version of the compiler, function names  can be greater than 80 characters but only if the program is not compiled  with any debugging information (without /d2).
  10135.  
  10136. SOLUTION
  10137.  
  10138.     Right now there is no solution for this problem.
  10139.  
  10140.  
  10141.  
  10142.  
  10143. FYI:     GetBroadcastMessage Code Error
  10144.                                      FYI
  10145.  
  10146. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10147.  
  10148.           TITLE:    GetBroadcastMessage Code Error
  10149.    DOCUMENT ID#:    FYI.A.3358
  10150.            DATE:    16MAR92
  10151.         PRODUCT:    NetWare C Interface DOS
  10152. PRODUCT VERSION:    1.2
  10153.      SUPERSEDES:    NA
  10154.  
  10155.         SYMPTOM:    Workstation Hang
  10156.  
  10157.  
  10158. ISSUE/PROBLEM
  10159.  
  10160.     The NetWare C Interface - DOS, version 1.20, GetBroadcastMessage function  only expects messages of 55 bytes or less to be returned.  However,  broadcast messages up to 58 bytes may be returned from the server  console.  A long message corrupts system memory and may cause a work  station hang.
  10161.  
  10162. SOLUTION
  10163.  
  10164.     Modify the source to the GetBroadcastMessage function in the BRODCAST.C  source files as follows:
  10165.  
  10166.      Old:
  10167.  
  10168.      int GetBroadcastMessage(messageBuffer)
  10169.      char *messageBuffer;
  10170.      {
  10171.          char sendBuf[3], replyBuf[58];
  10172.          int len, ccode;
  10173.  
  10174.          *((int *)sendBuf) = 1;
  10175.          sendBuf[2] = (char) 1;
  10176.          *((int *)replyBuf) = 56;
  10177.          replyBuf[2] = (char)55;
  10178.          ccode = _ShellRequest((BYTE)0xE1, (BYTE *)sendBuf, (BYTE *)replyBuf);
  10179.          if (ccode)
  10180.            return (ccode);
  10181.          len = (int)replyBuf[2];
  10182.          memmove(messageBuffer, replyBuf + 3, len);
  10183.          messageBuffer[len] = 0;
  10184.          return (0);
  10185.      }
  10186.  
  10187.      New:
  10188.  
  10189.      int GetBroadcastMessage(messageBuffer)
  10190.      char *messageBuffer;
  10191.      {
  10192.          char sendBuf[3], replyBuf[61];
  10193.          int len, ccode;
  10194.  
  10195.          *((int *)sendBuf) = 1;
  10196.          sendBuf[2] = (char) 1;
  10197.          *((int *)replyBuf) = 59;
  10198.          replyBuf[2] = (char)58;
  10199.          ccode = _ShellRequest((BYTE)0xE1, (BYTE *)sendBuf, (BYTE *)replyBuf);
  10200.          if (ccode)
  10201.            return (ccode);
  10202.          len = (int)replyBuf[2];
  10203.          memmove(messageBuffer, replyBuf + 3, len);
  10204.          messageBuffer[len] = 0;
  10205.          return (0);
  10206.      }
  10207.  
  10208.  
  10209.  
  10210.  
  10211. FYI:     GetBroadcastMessage Documentation Error
  10212.                                      FYI
  10213.  
  10214. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10215.  
  10216.           TITLE:    GetBroadcastMessage Documentation Error
  10217.    DOCUMENT ID#:    FYI.A.3357
  10218.            DATE:    16MAR92
  10219.         PRODUCT:    NetWare System Calls
  10220. PRODUCT VERSION:    1.0
  10221.      SUPERSEDES:    NA
  10222.  
  10223.         SYMPTOM:    Workstation hang.
  10224.  
  10225.  
  10226. ISSUE/PROBLEM
  10227.  
  10228.     The NetWare System Calls - DOS, version 1.00, states that the maximum  length that can be returned for any given message is 55 bytes.  This is  incorrect.  The maximum lenth that can be returned is 58 bytes, including  the NULL terminator.
  10229.  
  10230. SOLUTION
  10231.  
  10232.     Increase the maximum message reply size to 58 bytes.  This increases the  overall reply buffer size to 61 bytes.
  10233.  
  10234.  
  10235.  
  10236.  
  10237. FYI:    No Problems With NetWare For VMS And VMS 5.5
  10238.                                      FYI
  10239.  
  10240. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10241.  
  10242.           TITLE:    No Problems With NetWare For VMS And VMS 5.5
  10243.    DOCUMENT ID#:    FYI.P.5763
  10244.            DATE:    13MAR92
  10245.         PRODUCT:    NetWare for VMS
  10246. PRODUCT VERSION:    v2.1 r3.01,v2.1 r4.01
  10247.  
  10248.      SUPERSEDES:    NA
  10249.  
  10250.         SYMPTOM:    Compatibility with VMS 5.5
  10251.  
  10252. ISSUE/PROBLEM
  10253.  
  10254.     Several customers have called asking if there are any known problems with NetWare for VMS and DECs latest release of VMS v5.5.
  10255.  
  10256. SOLUTION
  10257.  
  10258.     As of 3/13/92 we have not seen any compatibility problems with VMS v5.5 and NetWare for VMS.
  10259.  
  10260.  
  10261.  
  10262.  
  10263. FYI:    NetWare For VMS INSTALL Not Accepting Controller
  10264.                                      FYI
  10265.  
  10266. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10267.  
  10268.           TITLE:    NetWare For VMS INSTALL Not Accepting Controller Types
  10269.    DOCUMENT ID#:    FYI.P.5761
  10270.            DATE:    13MAR92
  10271.         PRODUCT:    NetWare for VMS
  10272. PRODUCT VERSION:    NA
  10273.      SUPERSEDES:    NA
  10274.  
  10275.         SYMPTOM:    Customers installing NetWare for VMS not seeing their correct VAX ethernet controller type and ethernet device type.
  10276.  
  10277. ISSUE/PROBLEM
  10278.  
  10279.     During the install process for NetWare for VMS the user is prompted to enter their VAX ethernet controller type (DEQNA etc.) and also the device type (XQA etc.).  However when they put in their controller type the install utility will not accept it.
  10280.  
  10281. SOLUTION
  10282.  
  10283.     There are newer DEC ethernet controllers as well as different ethernet controller type and ethernet device type combinations that NetWare for VMS does not understand.  It is possible to make the necessary changes during the install, or they can make the change after the install is completed by following the directions in FYI.P.4937.
  10284.  
  10285.     The controller type selection (DEQNA etc.) really doesn't matter so the user can choose any controller types that install has listed.  The device type (XQA etc.) is the one they need to make sure they choose the correct type for their controller.  NetWare for VMS install does not check what device type is entered against what types it knows about.  Their VAX support person should be able to tell them what the correct device type is for their controller.  The following is a list of DEC VAX ethernet controllers and their device types/names:
  10286.  
  10287.      DEBNT  for BI based VAX
  10288.      DEBNA  for BI based VAX
  10289.      DEBNI  for BI based VAX
  10290.      DEUNA  for UNIBUS based VAX
  10291.      DELUA  for UNIBUS based VAX
  10292.      DEQNA  for QBUS based micro VAX
  10293.      DELQA  for QBUS based micro VAX
  10294.      DESQA  for QBUS based micro VAX
  10295.      DESQA  for VAX 4000
  10296.      DESVA  for micro VAX 2000
  10297.      DEMNA  for VAX 9000
  10298.  
  10299.      DEBNTs use device names ETA, ETB ...
  10300.      DEBNAs use device names ETA, ETB ...
  10301.      DEBNIs use device names ETA, ETB ...
  10302.      DEUNAs use device names XEA, XEB ...
  10303.      DELUAs use device names XEA, XEB ...
  10304.      DEQNAs use device names XQA, XQB ...
  10305.      DELQAs use device names XQA, XQB ...
  10306.      DESQAs use device names XQA, XQB ...
  10307.      DESQAs use device names EZA, EZB ...
  10308.      DESVAs use device names ESA, ESB ...
  10309.      DEMNAs use device names EXA, EXB ...
  10310.  
  10311.     Note: the third letter in the device name specifies which ethernet card ie ETA is the first ethernet controller, ETB is the second ethernet controller etc.
  10312.  
  10313.  
  10314.  
  10315.  
  10316. FYI:    "No Servers Found On Network".
  10317.                                      FYI
  10318.  
  10319. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10320.  
  10321.           TITLE:    "No Servers Found On Network".
  10322.    DOCUMENT ID#:    FYI.P.5760
  10323.            DATE:    13MAR92
  10324.         PRODUCT:    NetWare Lite
  10325. PRODUCT VERSION:    v1.0
  10326.      SUPERSEDES:    NA
  10327.  
  10328.         SYMPTOM:    Message "No servers found on network" upon running client on a machine.
  10329.  
  10330. ISSUE/PROBLEM
  10331.  
  10332.     Customer got message "No servers found on network" upon running client on a machine.  Verify connections revealed that the cards were not talking to each other.  If he removed the Device=EMM386.EXE line from CONFIG.SYS, the problem went away.
  10333.  
  10334. SOLUTION
  10335.  
  10336.     The WD NIC uses shared RAM--in this case D000.  When using EMM386 you must exclude the shared RAM address used by the NIC.  Customer was not excluding D000.  He changed his CONFIG.SYS to C:\DOS\EMM386 64 RAM X=D000-D400 and the cards started talking.  The "X=" line excludes the shared RAM address.
  10337.  
  10338.  
  10339.  
  10340.  
  10341. FYI:    Unable To See External Bernoulli Drives. NetWare
  10342.                                      FYI
  10343.  
  10344. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10345.  
  10346.           TITLE:    Unable To See External Bernoulli Drives. NetWare Lite
  10347.    DOCUMENT ID#:    FYI.P.5756
  10348.            DATE:    13MAR92
  10349.         PRODUCT:    NetWare Lite
  10350. PRODUCT VERSION:    v1.0
  10351.      SUPERSEDES:    NA
  10352.  
  10353.         SYMPTOM:    Unable To See External Bernoulli Drives.
  10354.  
  10355. ISSUE/PROBLEM
  10356.  
  10357.     Customer installed server/client on a machine with an internal drive (C:) and an external Bernoulli with dual drives (D: and E: as configured by the RCD.SYS driver). When running server to setup the drives he could not see the Bernoulli drives.
  10358.  
  10359. SOLUTION
  10360.  
  10361.     Needed the latest Bernoulli driver v7.02
  10362.  
  10363.  
  10364.  
  10365.  
  10366. FYI:     Brequest Hangs If No Network Connection Established
  10367.                                      FYI
  10368.  
  10369. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10370.  
  10371.           TITLE:    Brequest Hangs If No Network Connection Established
  10372.    DOCUMENT ID#:    FYI.A.1746
  10373.            DATE:    13MAR92
  10374.         PRODUCT:    NetWare Btrieve NLM
  10375. PRODUCT VERSION:    5.15
  10376.      SUPERSEDES:    NA
  10377.  
  10378.         SYMPTOM:    Workstation hangs when loading Brequest
  10379.  
  10380.  
  10381. ISSUE/PROBLEM
  10382.  
  10383.     Attempting to load BREQUEST.EXE v5.16 on a workstation that does not have a network connection will hang the workstation.
  10384.  
  10385. SOLUTION
  10386.  
  10387.     Make sure the network shell is loaded before attempting to load Brequest. When loading Brequest from the AUTOEXEC.BAT file, check the DOS ERRORLEVEL after loading the network shell.  If it is set, do not load Brequest.  For example:
  10388.  
  10389.            SET B_LOAD=YES
  10390.            IPX
  10391.            NETX
  10392.            IF ERRORLEVEL 1 SET B_LOAD=NO
  10393.            ...
  10394.            IF %B_LOAD% == YES BREQUEST /D:8192
  10395.            SET B_LOAD=
  10396.            ...
  10397.  
  10398.  
  10399.  
  10400.  
  10401. FYI:    Shift Key Sticking, NetWare Lite v1.0
  10402.                                      FYI
  10403.  
  10404. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10405.  
  10406.           TITLE:    Shift Key Sticking, NetWare Lite v1.0
  10407.    DOCUMENT ID#:    FYI.P.5780
  10408.            DATE:    12MAR92
  10409.         PRODUCT:    NetWare Lite
  10410. PRODUCT VERSION:    v1.0
  10411.      SUPERSEDES:    NA
  10412.  
  10413.         SYMPTOM:    Keyboard Shift Key sticking
  10414.  
  10415. ISSUE/PROBLEM
  10416.  
  10417.     The shift key "sticks" or turns on and remains that way (similar to caps lock).One situation was when a client was putting some heavy disk access on the server, the server's shift key would stick.  It could only be turned off by pressing the shift key.  It is similar to the caps lock being on.
  10418.  
  10419. SOLUTION
  10420.  
  10421.     Put INSTALL=C:\DOS\KEYB.COM US,,C:DOS\KEYBOARD.SYS in the CONFIG.SYS fixes the problem.
  10422.  
  10423.  
  10424.  
  10425.  
  10426. FYI:    Keyboard Problems In NetWare Lite Running Lotus
  10427.                                      FYI
  10428.  
  10429. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10430.  
  10431.           TITLE:    Keyboard Problems In NetWare Lite Running Lotus
  10432.    DOCUMENT ID#:    FYI.P.5774
  10433.            DATE:    12MAR92
  10434.         PRODUCT:    NetWare
  10435. PRODUCT VERSION:    v1.0
  10436.      SUPERSEDES:    NA
  10437.  
  10438.         SYMPTOM:    Numbers appear when pressing the cursor arrows, not on the number pad.
  10439.  
  10440. ISSUE/PROBLEM
  10441.  
  10442.     The customer was using Lotus 2.3 and the keyboard would randomly insert a 2 when he was pressing the down arrow key (THE ONE NOT ON THE NUMBER PAD).  It would happen worse when the turbo button was off, and when he was in WYSIWYG.  About every 20 lines when moving down the screen the cursor would pause and insert a 2, or when pressing the up arrow key, the number 8 would appear.  The problem did not exist unless the numlock key was on.  We tried removing TSR's, applying NWL004.zip to no avail.
  10443.  
  10444. SOLUTION
  10445.  
  10446.     Inputing the following line in the CONFIG.SYS file solved the problem. "install=c:\dos\keyb.com US,,c:\dos\keyboard.sys"
  10447.  
  10448.     Note:The keyb.com command configures the keyboard for a specific language.  In the indicated DOS command it forces the country to the US.  The keyboard.sys file according to the DOS 5.0 manual specifies the location and name of the keyboard definition file. The DEFAULT keyboard info sometimes gets loaded wrong. Loading the keyboard driver in the CONFIG.SYS file is the fix.
  10449.  
  10450.  
  10451.  
  10452.  
  10453. FYI:    Slow Backup With Archive Quickstream Software
  10454.                                      FYI
  10455.  
  10456. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10457.  
  10458.           TITLE:    Slow Backup With Archive Quickstream Software
  10459.    DOCUMENT ID#:    FYI.P.5771
  10460.            DATE:    12MAR92
  10461.         PRODUCT:    NetWare
  10462. PRODUCT VERSION:    v2.2
  10463.      SUPERSEDES:    NA
  10464.  
  10465.         SYMPTOM:    Backup is too slow (3 hours to backup 30 MB)
  10466.  
  10467. ISSUE/PROBLEM
  10468.  
  10469.     Customer has a Compaq 386/16 running as a nondedicated fileserver.  He has an Adaptec 1542b.  The internal connector is servicing 1 HD (200 SCSI) and the external connector is not being used.  The floppy connector is servicing one floppy device and an ARCHIVE qS80 backup unit.  Apparently the backup unit is software addressable through the floppy controller.  They are using ARCHIVE's Quickstream software in nondedicated mode.
  10470.  
  10471.     When they backup 30 MB of data it takes 3 hours which is unusually long.  Under ELS II v2.15c (using a separate controller for the hard drive and the floppy controller) it only took 45 minutes. We checked the following:
  10472.  
  10473.             * Termination on the HBA
  10474.             * SCSI ID on drive (the backup unit did not have a
  10475.               ID because it was using the floppy connector).
  10476.             * Driver for the 1542b (ASWNOVL.OBJ 5/90 11192 bytes)
  10477.  
  10478. SOLUTION
  10479.  
  10480.     We contacted Maynard tech support (800-227-6296 they also support Archive) and they suggested adding the following device in his CONFIG.SYS:
  10481.  
  10482.             device=aspi4dos.sys /n07
  10483.  
  10484.     The file aspi4dos.sys is on Adaptec's Utility diskette.
  10485.  
  10486.     The parameter /n07 sets the dma transfer speed to .7 and it only affects applications that need it.  After he added this the backup performance improved.
  10487.  
  10488.  
  10489.  
  10490.  
  10491. FYI:    Corrupt WP.SET File Causing "Disk Error 51"
  10492.                                      FYI
  10493.  
  10494. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10495.  
  10496.           TITLE:    Corrupt WP.SET File Causing "Disk Error 51"
  10497.    DOCUMENT ID#:    FYI.P.5769
  10498.            DATE:    12MAR92
  10499.         PRODUCT:    NetWare Lite
  10500. PRODUCT VERSION:    v1.0
  10501.      SUPERSEDES:    NA
  10502.  
  10503.         SYMPTOM:    Disk Error 51 in WP.
  10504.  
  10505. ISSUE/PROBLEM
  10506.  
  10507.     Customer has ten workstations on an Arcnet network.  The problem affects one machine (FS1).
  10508.  
  10509.     Reboot any machine on the network, (FS1) is running WordPerfect when the reboot occurs.  Any function key on (FS1) is pressed and immediately gets a Disk 51 error message.  Retry will clear the message for a split second, but the same message reappears immediately.  The message can be permanently cleared by pressing Ctrl-Shift-F1 but the document being worked on in WP is deleted.
  10510.  
  10511.     If however the problem is "waited out" the error message will go away (by pressing retry) in six minutes exactly.  No matter how many times retry is hit before six minutes elapse, the message returns to the screen.  Hitting cancel produces the same result.
  10512.  
  10513. SOLUTION
  10514.  
  10515.     The WPX}.SET file was corrupt.  Customer deleted the .SET file and the problem went away.
  10516.  
  10517.  
  10518.  
  10519.  
  10520. FYI:     Specifying Server Name And Volume Name in BLOG.CFG
  10521.                                      FYI
  10522.  
  10523. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10524.  
  10525.           TITLE:    Specifying Server Name And Volume Name in BLOG.CFG
  10526.    DOCUMENT ID#:    FYI.A.3015
  10527.            DATE:    12MAR92
  10528.         PRODUCT:    NetWare Btrieve NLM
  10529. PRODUCT VERSION:    5.15
  10530.      SUPERSEDES:    NA
  10531.  
  10532.         SYMPTOM:    BROLLFWD error: Cannot find log file
  10533.  
  10534.  
  10535. ISSUE/PROBLEM
  10536.  
  10537.     If the BLOG.CFG file contains ServerName\VolumeName to specify the path to the log file used by BROLLFWD, BROLLFWD will return the error message "Cannot find log file".  For example, if BLOG.CFG contains:
  10538.  
  10539.       \TestDir\FileName=ServerName\VolumeName:\TestDir\LogFile
  10540.  
  10541.     BROLLFWD will not be able to find the log file.   However, if a drive letter is specified instead of ServerName and VolumeName, BROLLFWD works correctly.
  10542.  
  10543. SOLUTION
  10544.  
  10545.     Use a drive letter to specify the path to the log file.
  10546.  
  10547.  
  10548.  
  10549.  
  10550. FYI:    Unable To Clear Connections In MONITOR.
  10551.                                      FYI
  10552.  
  10553. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10554.  
  10555.           TITLE:    Unable To Clear Connections In MONITOR.
  10556.    DOCUMENT ID#:    FYI.P.5752
  10557.            DATE:    11MAR92
  10558.         PRODUCT:    NetWare
  10559. PRODUCT VERSION:    v3.11
  10560.      SUPERSEDES:    NA
  10561.  
  10562.         SYMPTOM:    Couldn't clear connections in monitor and also work stations were losing connection.
  10563.  
  10564. ISSUE/PROBLEM
  10565.  
  10566.     Customer had a 3c523 in PS/2 and was having problems clearing connections in MONITOR and keeping his work stations up.
  10567.  
  10568. SOLUTION
  10569.  
  10570.     PS2OPT.ZIP from Novell and 3C523.ZIP from 3COM with the latest model of the 3c523 twisted pair board.
  10571.  
  10572.  
  10573.  
  10574.  
  10575. FYI:    Watchdog Dropping Connections.
  10576.                                      FYI
  10577.  
  10578. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10579.  
  10580.           TITLE:    Watchdog Dropping Connections.
  10581.    DOCUMENT ID#:    FYI.P.5749
  10582.            DATE:    11MAR92
  10583.         PRODUCT:    NetWare
  10584. PRODUCT VERSION:    v3.11
  10585.      SUPERSEDES:    NA
  10586.  
  10587.         SYMPTOM:    Loosing connection to the network.
  10588.  
  10589. ISSUE/PROBLEM
  10590.  
  10591.     Workstations losing connections because of watchdog.
  10592.  
  10593. SOLUTION
  10594.  
  10595.     It was actually the other way around.  Workstations were hanging first and THEN the watchdog process was just doing what it was supposed to do and deleting them.  They were running Blue Max and Carousel software on the workstation and seems like they had a conflict.  Took these two programs out of the picture and problems went away.
  10596.  
  10597.  
  10598.  
  10599.  
  10600. FYI:    Printing Difficulty With PeachTree Software
  10601.                                      FYI
  10602.  
  10603. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10604.  
  10605.           TITLE:    Printing Difficulty With PeachTree Software
  10606.    DOCUMENT ID#:    FYI.P.5746
  10607.            DATE:    11MAR92
  10608.         PRODUCT:    NetWare Lite
  10609. PRODUCT VERSION:    v1.0
  10610.      SUPERSEDES:    NA
  10611.  
  10612.         SYMPTOM:    Peachtree Accounting Software printing garbage or not printing at all.
  10613.  
  10614. ISSUE/PROBLEM
  10615.  
  10616.     In the Typewriter mode of PeachTree it would ether not print or print garbage etc. In this mode the user can type on the keyboard and the characters will print on the printer.
  10617.  
  10618. SOLUTION
  10619.  
  10620.     NWL004.zip fixed the problem.
  10621.  
  10622.  
  10623.  
  10624.  
  10625. FYI:    Problems Installing MHS On Volume Other Than SYS:
  10626.                                      FYI
  10627.  
  10628. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10629.  
  10630.           TITLE:    Problems Installing MHS On Volume Other Than SYS:
  10631.    DOCUMENT ID#:    FYI.P.5745
  10632.            DATE:    11MAR92
  10633.         PRODUCT:    NetWare
  10634. PRODUCT VERSION:    v3.11
  10635.      SUPERSEDES:    NA
  10636.  
  10637.         SYMPTOM:    Unable to Install MHS
  10638.  
  10639. ISSUE/PROBLEM
  10640.  
  10641.     Customer was unable to get MHS to install on his NetWare v3.11 file server.  Error message was indicating there weren't enough directory entries.
  10642.  
  10643. SOLUTION
  10644.  
  10645.     MHS looks to see if there are a minimum of some 200 directory entries before it will install.  Normally this isn't an issue as most of the time, users install MHS on the SYS Volume. NetWare v3.11 by default will allocate blocks of 32 entries for each directory.  An empty Volume will by default still contain 2 directories meaning it will have 64 directory entries.  MHS wouldn't install because his empty Volumes only had 64 directory entries.
  10646.  
  10647.     He was able to work around this by copying some directories and files (dummys) to this Volume and then deleting them.   Deleting files and removing directories that have been allocated won't cause the directory entries to be dealocated.  After copying and deleting these files and directories to this Volume, he was able to install MHS no problem.
  10648.  
  10649.  
  10650.  
  10651.  
  10652. FYI:    Watchdog Clearing Connections When WS Loads Shell
  10653.                                      FYI
  10654.  
  10655. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10656.  
  10657.           TITLE:    Watchdog Clearing Connections When WS Loads Shell
  10658.    DOCUMENT ID#:    FYI.P.5744
  10659.            DATE:    11MAR92
  10660.         PRODUCT:    NetWare
  10661. PRODUCT VERSION:    v3.11
  10662.      SUPERSEDES:    NA
  10663.  
  10664.         SYMPTOM:    Connection is cleared.
  10665.  
  10666. ISSUE/PROBLEM
  10667.  
  10668.     Watchdog clearing connections when the workstation has the shell loaded.
  10669.  
  10670. SOLUTION
  10671.  
  10672.     Make sure the "Delay Before First Watchdog Packet" is larger than the "Delay Between Watchdog Packet".  It is recommended that the "Delay Before First Watchdog Packet" is twice as large as the "Delay Between Watchdog Packet".  Leaving the watchdog parameters at default is usually the best solution .
  10673.  
  10674.  
  10675.  
  10676.  
  10677. FYI:    Soft Booting Not Releasing Rprinter Configuration
  10678.                                      FYI
  10679.  
  10680. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10681.  
  10682.           TITLE:    Soft Booting Not Releasing Rprinter Configuration
  10683.    DOCUMENT ID#:    FYI.P.5739
  10684.            DATE:    11MAR92
  10685.         PRODUCT:    NetWare
  10686. PRODUCT VERSION:    v3.11
  10687.      SUPERSEDES:    NA
  10688.  
  10689.         SYMPTOM:    RPRINTER "configured printer already installed"
  10690.  
  10691. ISSUE/PROBLEM
  10692.  
  10693.     Using DOS 3.3 and the RPRINTER that ships with v3.11/v2.2, when soft booting the work station, the printer configuration is not released on the PSERVER.
  10694.  
  10695. SOLUTION
  10696.  
  10697.     One solution is to unload the VAP or NLM.  In this case just cold booting the work station took care of the proper release of the printer configuration.
  10698.  
  10699.     Note:There is a timing issue with the print server not releasing the connection in the time to soft boot. The cold boot took enough time to have the connection released. The other way to release the connection is to do "rprinter xxxxxx # -r" where xxxxxx is the pserver name, # is the printer number and -r removes the connection.
  10700.  
  10701.  
  10702.  
  10703.  
  10704. FYI:    Utilities Possibly Corrupting NetWare VMS Bindery
  10705.                                      FYI
  10706.  
  10707. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10708.  
  10709.           TITLE:    Utilities Possibly Corrupting NetWare VMS Bindery
  10710.    DOCUMENT ID#:    FYI.P.5735
  10711.            DATE:    10MAR92
  10712.         PRODUCT:    NetWare for VMS
  10713. PRODUCT VERSION:    v2.1
  10714.      SUPERSEDES:    NA
  10715.  
  10716.         SYMPTOM:    Errors with bindery calls (i.e. logging in, trustees, etc.)
  10717.  
  10718. ISSUE/PROBLEM
  10719.  
  10720.     If you use utilities such as SYSCON, PCONSOLE, MAKEUSER or any utility that manipulates the bindery that comes from another version of NetWare it could possibly corrupt the NetWare for VMS bindery.  This has been observed with utilities from NetWare v3.x.
  10721.  
  10722. SOLUTION
  10723.  
  10724.     The only thing that you can do once you have a corrupt bindery with NetWare for VMS is to restore a backup of your bindery.  There is no Bindfix utility.If you do not have a backup of the bindery you can restore a clean bindery from the NetWare for VMS installation tape.  To restore the bindery do the following.  The $ is the VMS prompt.  The tape drive is assumed to be MUA0.  Have the customer use their tape drive in place of MUA0.
  10725.  
  10726.     $ MOUNT MUA0: NETWAR TAPE
  10727.     $ BACKUP TAPE:NetWare_VMS021.A/SAVE/SEL=([*...]*.BND,[*...]*.DB)     -
  10728.     $ NWVMS$SPECIFIC:*.*
  10729.     $ DISMOUNT TAPE:
  10730.  
  10731.     f a customer wants to know how to backup their bindery with NetWare for VMS have them execute the following command procedure with a parameter of AUTO.
  10732.  
  10733.     $ @NWVMS$SPECIFIC:NW_SRV_DBS.COM AUTO
  10734.  
  10735.  
  10736.  
  10737.  
  10738. FYI:    "Send ECB Was Re-Used RPL Halted"
  10739.                                      FYI
  10740.  
  10741. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10742.  
  10743.           TITLE:    "Send ECB Was Re-Used RPL Halted"
  10744.    DOCUMENT ID#:    FYI.P.5721
  10745.            DATE:    09MAR92
  10746.         PRODUCT:    NetWare
  10747. PRODUCT VERSION:    v3.11
  10748.      SUPERSEDES:    NA
  10749.  
  10750.         SYMPTOM:    Error "send ecb was reused RPL halted" when attempting to remote boot
  10751.  
  10752. ISSUE/PROBLEM
  10753.  
  10754.     Customer received error "send ecb was reused RPL halted" when attempting to remote boot on NetWare v3.11 server using the RPL.NLM dated 12/3/91 (from RPLft.zip, which can be obtained from Novell tech support).  If the work station was rebooted after this error then remote boot proceeded with no problem.
  10755.  
  10756. SOLUTION
  10757.  
  10758.     Used NE2.LAN from NE386.ZIP (11-11-91) and error disappeared.
  10759.  
  10760.  
  10761.  
  10762.  
  10763. FYI:    Remote Boot Difficulty After v2.2 Upgrade
  10764.                                      FYI
  10765.  
  10766. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10767.  
  10768.           TITLE:    Remote Boot Difficulty After v2.2 Upgrade
  10769.    DOCUMENT ID#:    FYI.P.5719
  10770.            DATE:    09MAR92
  10771.         PRODUCT:    NetWare
  10772. PRODUCT VERSION:    v2.2
  10773.      SUPERSEDES:    NA
  10774.  
  10775.         SYMPTOM:    After upgrade from NetWare v2.15a to v2.2 workstations trying to remote boot getting error reading boot image.
  10776.  
  10777. ISSUE/PROBLEM
  10778.  
  10779.     After the upgrade the Samsung and Hyundai diskless workstations would try to remote boot and after loading netx they would error out with an error something like unable to read from boot image.   Customer tried different versions of DOS the latest NE1000 driver, both 3.1 IPX and 3.22 Netx as well as older NE1000 drivers, IPX and NETx versions all with the same result.  They had contacted Hyundai and Samsung and were running the BIOS and Remote versions that they both recommend to work with v2.15 and v2.2.
  10780.  
  10781. SOLUTION
  10782.  
  10783.     They finally tried the ODI drivers and are now able to remote boot fine now.
  10784.  
  10785.  
  10786.  
  10787.  
  10788. FYI:    NetWare Lite, Quattro Pro Printing With Corruption
  10789.                                      FYI
  10790.  
  10791. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10792.  
  10793.           TITLE:    NetWare Lite, Quattro Pro Printing With Corruption
  10794.    DOCUMENT ID#:    FYI.P.5718
  10795.            DATE:    09MAR92
  10796.         PRODUCT:    NetWare Lite
  10797. PRODUCT VERSION:    v1.0
  10798.      SUPERSEDES:    NA
  10799.  
  10800.         SYMPTOM:    NetWare Lite and Quattro Pro Printing with corruption
  10801.  
  10802. ISSUE/PROBLEM
  10803.  
  10804.     Corruption problems when printing a simple spreadsheet with three fonts.  We corrected I/O and cache usage and the problem was reduced but still continued.  Solution
  10805.  
  10806.     By changing the printer port from DOS parallel 1 to DOS LPT1 in Quattro, the problem disappeared.
  10807.  
  10808.     Addtl Info: Lotus 123 also has a DOS parallel 1 option but it does not seem to have this type of serious corruption that Quattro Pro 3.0 has.
  10809.  
  10810.  
  10811.  
  10812.  
  10813. FYI:    "Unable To Write To VOL$LOG.ERR..."  NetWare v3.11
  10814.                                      FYI
  10815.  
  10816. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10817.  
  10818.           TITLE:    "Unable To Write To VOL$LOG.ERR..."  NetWare v3.11
  10819.    DOCUMENT ID#:    FYI.P.5714
  10820.            DATE:    06MAR92
  10821.         PRODUCT:    NetWare
  10822. PRODUCT VERSION:    v3.11
  10823.      SUPERSEDES:    NA
  10824.  
  10825.         SYMPTOM:    "Unable To Write To VOL$LOG.ERR..."
  10826.  
  10827. ISSUE/PROBLEM
  10828.  
  10829.     Upon bringing up the server which had two volumes volume SYS would mount fine, but was getting the error: Unable to write to VOL$LOG.ERR.  Then the volume was dismounted and the device deactivated.
  10830.  
  10831.     His file VOL$LOG.ERR had some how become corrupted.  VREPAIR reported no errors.  IBM DIAGNOSTICS found data integrity problems on two blocks.
  10832.  
  10833. SOLUTION
  10834.  
  10835.     Used a disk editor (Norton's) to rename the file and the server no longer had a problem mounting.  No data was lost.
  10836.  
  10837.     Note: VOL$LOG.ERR obviously keeps track of volume errors, but also logs each mount and dismount occurrence.  The OS recreated the file when it couldn't find one.
  10838.  
  10839.  
  10840.  
  10841.  
  10842. FYI:    NetWare Lite Problems With Norton Ncache.exe
  10843.                                      FYI
  10844.  
  10845. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10846.  
  10847.           TITLE:    NetWare Lite Problems With Norton Ncache.exe
  10848.    DOCUMENT ID#:    FYI.P.5715
  10849.            DATE:    05MAR92
  10850.         PRODUCT:    NetWare Lite
  10851. PRODUCT VERSION:    v1.0
  10852.      SUPERSEDES:    NA
  10853.  
  10854.         SYMPTOM:    Client workstation hangs.
  10855.  
  10856. ISSUE/PROBLEM
  10857.  
  10858.     Customer had a Server/Client and a Client ws using HP 8bit 10baseT adapters. When ever they would access the server/client from the client only workstation it would process for a few seconds and then appear to hang. If a simple [Enter] or directory [dir] was done on the server/client the client only workstation would continue (ie the problem of the client only station appearing to hang only happened when the server/client was idle).
  10859.  
  10860. SOLUTION
  10861.  
  10862.     Renamed the CONFIG.SYS and AUTOEXEC.BAT on the server/client and the problem went away. After REMing out every command and putting them back one at a time we found that it was Norton's Ncache. He was loading it with Dos 5.0's loadhigh command. We changed the command to Ncache /usehidos=yes (which will load it high).
  10863.  
  10864.     Be extremely careful in using caching programs.  Deferred writes MUST be turned off so server.exe and the cache won't bump heads.
  10865.  
  10866.     If you are running NetWare Lite with Norton Cache you need to disable deferred writes. When you are running NetWare Lite and norton cache there are times when they are put to sleep. They can be activated either by int 15 or by a clock tick. Norton cache uses both ways.  When norton cache wakes up he just starts doing his thing without seeing what NetWare Lite is doing.
  10867.  
  10868.     There is an undocumented DOS call to check DOS critical areas. NetWare Lite v1.0 and v1.1 use this dos call to see if someone else is doing something critical before going about its business. Norton says that they will implement this DOS call in a future version of Norton Cache. As a side note, the cache that will ship with the next version of NetWare Lite does this checking already.
  10869.  
  10870.  
  10871.  
  10872.  
  10873. FYI:    "Network Load Failure" Dbase IV
  10874.                                      FYI
  10875.  
  10876. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10877.  
  10878.           TITLE:    "Network Load Failure" Dbase IV
  10879.    DOCUMENT ID#:    FYI.P.5698
  10880.            DATE:    05MAR92
  10881.         PRODUCT:    NetWare
  10882. PRODUCT VERSION:    v3.11
  10883.      SUPERSEDES:    NA
  10884.  
  10885.         SYMPTOM:    DOS 5.0 users get "NETWORK LOAD FAILURE" running Dbase IV when their current drive points to any volume other than that which holds Dbase.
  10886.  
  10887. ISSUE/PROBLEM
  10888.  
  10889.     File server with Dbase IV loaded on one volume of multiple volumes. Users have DOS 5.0 and other versions. All have search drives mapped to the Dbase directory. Those users with DOS 5.0 get "NETWORK LOAD FAILURE" when trying to run Dbase when their current drive points to any volume other than that which holds Dbase. All users with other versions of DOS are fine. Customer created a test .BAT file and put it into the same directory as the application and it runs just fine from any drive letter, any version of DOS.
  10890.  
  10891. SOLUTION
  10892.  
  10893.     Through the Borland TSA, we found that this is a known issue.  Borland said to use the command "DBASE #DF=X" to run the application, where X is the drive letter pointing to the application directory, which works.
  10894.  
  10895.  
  10896.  
  10897.  
  10898. FYI:    The DacEasy Configuration To Work With NetWare Lite
  10899.                                      FYI
  10900.  
  10901. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10902.  
  10903.           TITLE:    The DacEasy Configuration To Work With NetWare Lite
  10904.    DOCUMENT ID#:    FYI.P.5691
  10905.            DATE:    05MAR92
  10906.         PRODUCT:    NetWare Lite
  10907. PRODUCT VERSION:    v1.0
  10908.      SUPERSEDES:    NA
  10909.  
  10910.         SYMPTOM:    NA
  10911.  
  10912. ISSUE/PROBLEM
  10913.  
  10914.     In talking with the technicians at DacEasy there is a special setup needed to get DacEasy to work consistently with NetWare Lite.
  10915.  
  10916. SOLUTION
  10917.  
  10918.     There is a file that needs to be deleted in the dacEasy Software.
  10919.  
  10920.     NOTE: The DacEasy program needs to already be installed.
  10921.  
  10922.      1-    cd\dea4\dea4base
  10923.      2-    del dea4cid.db
  10924.      3-    cd.. back to dea4 and type dea4 to start the program
  10925.      4-    The program will then ask if you are a new user or upgrading from an earlier version.  You need to say that you are a new user.
  10926.      5-    The system will then ask for a company id. (you can run several different companies accounting information at the same time).  You will then need to input the path of the data files.
  10927.  
  10928.     Another bit if information.  DacEasy needs tons of conventional memory to run well.  It needs well above 512k, exact amount not known. The impression is that it had many random problems if there was not enough memory to run.  Different modules of DacEasy needed more memory than others.
  10929.  
  10930.     It may also be necessary to increase the files and locks parameters on the SHARE command.  And in addition, files may need to be increased at other clients.
  10931.  
  10932.  
  10933.  
  10934.  
  10935. FYI:    Problem loading 2 frame types on NE3200.
  10936.                                      FYI
  10937.  
  10938. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10939.  
  10940.           TITLE:    Problem loading 2 frame types on NE3200.
  10941.    DOCUMENT ID#:    FYI.P.5689
  10942.            DATE:    05MAR92
  10943.         PRODUCT:    NetWare
  10944. PRODUCT VERSION:    v3.11
  10945.      SUPERSEDES:    NA
  10946.  
  10947.         SYMPTOM:    Problem loading 2 frame types on NE3200 in Compaq System Pro.
  10948.  
  10949. ISSUE/PROBLEM
  10950.  
  10951.     File Server is a Compaq Systempro with one NE3200 with 802.2 and 802.3 frame types needing to be loaded. Loading the 802.3 wouldn't allow the 802.2 frame type to be loaded and vice versa.
  10952.  
  10953. SOLUTION
  10954.  
  10955.     Moved the NE3200 in the Systempro from slot 5 (which should work) to slot 2. After doing this the 2 frame types can be loaded on the card.
  10956.  
  10957.  
  10958.  
  10959.  
  10960. FYI:    Running Enable Software In NetWare Lite
  10961.                                      FYI
  10962.  
  10963. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10964.  
  10965.           TITLE:    Running Enable Software In NetWare Lite
  10966.    DOCUMENT ID#:    FYI.P.5687
  10967.            DATE:    05MAR92
  10968.         PRODUCT:    NetWare Lite
  10969. PRODUCT VERSION:    v1.0
  10970.      SUPERSEDES:    NA
  10971.  
  10972.         SYMPTOM:    When Enable is run from a mapped drive, the software looks for a diskette in drive B:.  It runs fine from the physical C:
  10973.  
  10974. ISSUE/PROBLEM
  10975.  
  10976.     Enable uses an environment parameter that identifies the paths where Enable can find the necessary files.
  10977.  
  10978. SOLUTION
  10979.  
  10980.     By entering: ENABLE (E:\EN300,,,,F:) the Enable software will find program files on drive E: and data files on drive F:.
  10981.  
  10982.  
  10983.  
  10984.  
  10985. FYI:    VMSPT3.TXT WordPerfect & Lotus files being corrupt
  10986.                                      FYI
  10987.  
  10988. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  10989.  
  10990.           TITLE:    VMSPT3.TXT WordPerfect & Lotus files being corrupt
  10991.    DOCUMENT ID#:    FYI.P.5681
  10992.            DATE:    05MAR92
  10993.         PRODUCT:    NetWare for VMS
  10994. PRODUCT VERSION:    v2.01, r3.01
  10995.      SUPERSEDES:    NA
  10996.  
  10997.         SYMPTOM:    NA
  10998.  
  10999. ISSUE/PROBLEM
  11000.  
  11001.     VMS patch 3 is a patch for NetWare for VMS v2.1 r3.01 and v2.1 r4.01 to resolve problems saving files from Wordperfect and Lotus where the file would end up as a 0 byte file and the contents would be lost.  This patch is recommended for anyone with NetWare for VMS issues regardless of whether or not they have seen the WP or Lotus problem.  It is available on Netwire file name VMSPT3.TXT.
  11002.  
  11003.  
  11004.  
  11005.  
  11006. FYI:     maxECBs in Windows IPXInitialize()
  11007.                                      FYI
  11008.  
  11009. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11010.  
  11011.           TITLE:    maxECBs in Windows IPXInitialize()
  11012.    DOCUMENT ID#:    FYI.A.3834
  11013.            DATE:    05MAR92
  11014.         PRODUCT:    Network C for Windows
  11015. PRODUCT VERSION:    v.1.2
  11016.      SUPERSEDES:    NA
  11017.  
  11018.         SYMPTOM:    Unrecoverable Application Error in Windows
  11019.  
  11020.  
  11021. ISSUE/PROBLEM
  11022.  
  11023.     In Windows Enhanced mode, passing 0 for maxECB parameter in the IPXInitalize() function, and then managing the allocation of ECBs in low memory results in a UAE (Unrecoverable Application Error).
  11024.  
  11025. SOLUTION
  11026.  
  11027.     In Windows Enhanced mode, passing 0 for maxECBs is allowed only for compatibilty with the Standard mode.  That is, specifying 0 for the maxECB  parameter will be ignored, and VIPX will do the managing of allocation of  ECBs.  However, in Standard mode, the application has the option of passing  0 for the maxECBs and then the application may allocate its own ECBs.
  11028.  
  11029.  
  11030.  
  11031.  
  11032. FYI:    UTAH COBOL and BTRIEVE
  11033.                                      FYI
  11034.  
  11035. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11036.  
  11037.           TITLE:    UTAH COBOL and BTRIEVE
  11038.    DOCUMENT ID#:    FYI.A.1856
  11039.            DATE:    05MAR92
  11040.         PRODUCT:    Btrieve DOS 3.1
  11041. PRODUCT VERSION:    5.10a
  11042.      SUPERSEDES:    NA
  11043.  
  11044.         SYMPTOM:    Can't find symbol BTRV
  11045.  
  11046. ISSUE/PROBLEM
  11047.  
  11048.     Customer reported a problem using a Cobol compiler named UTAH COBOL.  After purchasing Btrieve 5.10a he was no longer able to access Btrieve.  It was reported that the application would generate a message about the symbol BTRV.  After researching the problem the customer found that the file BDRT.EXE was missing from the library and that was the entry point that the executable could not find.
  11049.  
  11050. SOLUTION
  11051.  
  11052.     With the UTAH COBOL compiler be sure to keep the BDRT.EXE file in the library.
  11053.  
  11054.  
  11055.  
  11056.  
  11057. FYI:    Sessions and NetWare SQL
  11058.                                      FYI
  11059.  
  11060. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11061.  
  11062.           TITLE:    Sessions and NetWare SQL
  11063.    DOCUMENT ID#:    FYI.A.1852
  11064.            DATE:    05MAR92
  11065.         PRODUCT:    NetWare SQL 386 NLM
  11066. PRODUCT VERSION:    3.0
  11067.      SUPERSEDES:    NA
  11068.  
  11069.         SYMPTOM:    NA
  11070.  
  11071. ISSUE/PROBLEM
  11072.  
  11073.     NetWare SQL 3.0 will be stratified like NetWare to be sold by number of sessions available.  There will be a 250 session version, 100 session version etc.  This is very similiar to the NetWare stratification but there is one major difference: NetWare is sold by users, NetWare SQL is sold by sessions.
  11074.  
  11075.     When running 250 user NetWare, then 250 workstations can be logged into the system at one time.  There are 250 connections available on the server.  Consequently Windows workstations and OS/2 workstations can be running multiple NetWare applications from a single workstation, but each of these still only counts as a single connection.
  11076.  
  11077.     With NetWare SQL 3.0 the session count does not necessarily equate to a NetWare user.  Consequently, when running 250 session NetWare SQL, it is possible to use all 250 sessions without having 250 workstations logged into NetWare.  With Windows or OS/2, every application that makes a connection to NetWare SQL is considered a session.  So if there are 10 Windows NetWare SQL applications running on 25 Windows workstations, all the NetWare SQL sessions would be in use, even though only 25 NetWare connections would be in use.
  11078.  
  11079.     This same session usage concept holds true for the Btrieve NLM, any version, although the limit is based on the sessions parameter configured in the setup utility (maximum = 250 sessions).
  11080.  
  11081. SOLUTION
  11082.  
  11083.     NA
  11084.  
  11085.  
  11086.  
  11087.  
  11088. FYI:    "IPX Received Incomplete Packet.." AMI BIOS
  11089.                                      FYI
  11090.  
  11091. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11092.  
  11093.           TITLE:    "IPX Received Incomplete Packet.." AMI BIOS
  11094.    DOCUMENT ID#:    FYI.P.5672
  11095.            DATE:    04MAR92
  11096.         PRODUCT:    NetWare
  11097. PRODUCT VERSION:    v3.11
  11098.      SUPERSEDES:    NA
  11099.  
  11100.         SYMPTOM:    Getting "IPX RECEIVED INCOMPLETE PACKET FROM NETWORK"
  11101.  
  11102. ISSUE/PROBLEM
  11103.  
  11104.     Customer was trying to set up a new NetWare v3.11 network with just 2 nodes.  When he tried to attach to the file server from his workstation, he would get the above message at his file server screen, and would eventually timeout at his workstation.
  11105.  
  11106. SOLUTION
  11107.  
  11108.     The AMI BIOS on the workstation has an "Advanced CMOS Setup" with lots of detailed parameters that can be manipulated.  One of these was an "Advanced Chipset Setup" which has as one of it's options, "ROM read Option".  Customer disabled the "ROM read Option" and his above mentioned incomplete packet problem went away and he was able to login using all of the NIC/driver combinations he had previously tried by setting to defaults.   Customer said there was no warning or mention in his documentation implying a need to be concerned with disabling this "ROM read Option".
  11109.  
  11110.  
  11111.  
  11112.  
  11113. FYI:    Login Script Problems With "MENU.BAT" File Name
  11114.                                      FYI
  11115.  
  11116. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11117.  
  11118.           TITLE:    Login Script Problems With "MENU.BAT" File Name
  11119.    DOCUMENT ID#:    FYI.P.5657
  11120.            DATE:    04MAR92
  11121.         PRODUCT:    NetWare
  11122. PRODUCT VERSION:    v3.11
  11123.      SUPERSEDES:    NA
  11124.         SYMPTOM:    Login Script Problems With "MENU.BAT" File Name
  11125.  
  11126. ISSUE/PROBLEM
  11127.  
  11128.     Supervisor had just changed the system login script and then no one could login, not even supervisor.  Issued login from A: with the /s command to bypass the sys login.  Then in SYSCON we found he had a #menu.bat.  We changed it to EXIT "MENU.bat" which did not help.
  11129.  
  11130. SOLUTION
  11131.  
  11132.     It seemed to be confusing MENU.bat with the MENU.EXE. Renamed the batch file to RUNMENU.bat and it worked.
  11133.  
  11134.  
  11135.  
  11136.  
  11137. FYI:    Print Jobs Ignoring Time Out Or Stay In Queue
  11138.                                      FYI
  11139.  
  11140. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11141.  
  11142.           TITLE:    Print Jobs Ingnoring Time Out Or Stay In Queue
  11143.    DOCUMENT ID#:    FYI.P.5654
  11144.            DATE:    04MAR92
  11145.         PRODUCT:    NetWare
  11146. PRODUCT VERSION:    v3.11
  11147.      SUPERSEDES:    NA
  11148.  
  11149.         SYMPTOM:    Print jobs either ignore time out and print immediately or stay in queue forever.
  11150.  
  11151. ISSUE/PROBLEM
  11152.  
  11153.     Using the latest PSERVER.nlm (1-10-92) and rprinter with an original Hewlitt-Packard laserjet printer attached to COM2 as a serial printer.  It printed fine from DOS, but when using network queues job either printed out immediately, ignoring the 10 second time out or else stayed in the queue forever.  They were capturing to LPT2 on their local workstation.
  11154.  
  11155. SOLUTION
  11156.  
  11157.     Used the DOS mode command to assign COM2 to LPT2, then set the printer up as LPT2 in Pconsole, removed the mode statement, set the printer up as a remote serial printer using XON/XOFF.
  11158.  
  11159.  
  11160.  
  11161.  
  11162. FYI:    "There Are No Accessible Drives" Duplexing Maxtor
  11163.                                      FYI
  11164.  
  11165. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11166.  
  11167.           TITLE:    "There Are No Accessible Drives" Duplexing Maxtor IDE
  11168.    DOCUMENT ID#:    FYI.P.5653
  11169.            DATE:    04MAR92
  11170.         PRODUCT:    NetWare
  11171. PRODUCT VERSION:    v3.11
  11172.      SUPERSEDES:    NA
  11173.  
  11174.         SYMPTOM:    Error:" There are no accessible drives" when trying to duplex
  11175.  
  11176. ISSUE/PROBLEM
  11177.  
  11178.     Customer running on a Everex 486/33 machine and trying to duplex 2 Maxtor LXT 340 MB IDE drives, using 2 Quantum controller cards Prodrive ISA-151a.
  11179.  
  11180.     He was able to load ISADISK that came with 3.11 and see both drives in disk options however it was extremely slow. He then used the same ISADISK with the /b /l parameter. This sped up the server greatly but now he could only see one drive.
  11181.  
  11182. SOLUTION
  11183.  
  11184.     Loading IDE.dsk driver from IDE386.zip allowed him to see both drives and duplex them.
  11185.  
  11186.  
  11187.  
  11188.  
  11189. FYI:    PCKwik configuration settings.
  11190.                                      FYI
  11191.  
  11192. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11193.  
  11194.           TITLE:    PCKwik configuration settings.
  11195.    DOCUMENT ID#:    FYI.P.5650
  11196.            DATE:    04MAR92
  11197.         PRODUCT:    NetWare Lite
  11198. PRODUCT VERSION:    v1.0
  11199.      SUPERSEDES:    NA
  11200.         SYMPTOM:    PcKwick configuration settings.
  11201.  
  11202. ISSUE/PROBLEM
  11203.  
  11204.     PcKwick has configuration settings with NetWare Lite.
  11205.  
  11206. SOLUTION
  11207.  
  11208.     The only way to get the product to work consistently was to set the H parameter in the PcKwik options to '-'.  It wouldn't work if the H parameter was set to '+' or '#'. The DR DOS Optimization and Configuration manual says that the D parameter needs to be set to '-' also.  (Those switches correspond to advanced cache reads and writes according to the manual.)
  11209.  
  11210.  
  11211.  
  11212.  
  11213. FYI:    Bustek 4201 Busmastering SCSI Controller, NetWare
  11214.                                      FYI
  11215.  
  11216. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11217.  
  11218.           TITLE:    Bustek 4201 Busmastering SCSI Controller, NetWare v3.11
  11219.    DOCUMENT ID#:    FYI.P.5649
  11220.            DATE:    04MAR92
  11221.         PRODUCT:    NetWare
  11222. PRODUCT VERSION:    v3.11
  11223.      SUPERSEDES:    NA
  11224.         SYMPTOM:    GPPE Running Process AFP 1 Process
  11225.  
  11226. ISSUE/PROBLEM
  11227.  
  11228.     The server crashed after the error GPPE. Running Bustek 4201 Busmastering SCSI controller (Burst mode) with 486-33, EISA, Gateway 32Bit Ethernet, 32MB Ram, 1.6 Gig SCSI hard drive. Brought the server back up one of the volumes was having problems.
  11229.  
  11230. SOLUTION
  11231.  
  11232.     Bustek told us to make sure that the controller was set to below 1 Gig. (There is no disk loss) and check the hard drive to make sure that it was a fast SCSI DRIVE (it was not). So we needed to slow the controller down from 10MHz to 4MHz. Things are moving along just fine now.
  11233.  
  11234.  
  11235.  
  11236.  
  11237. FYI:     Btrieve DATE Data Type and BASIC
  11238.                                      FYI
  11239.  
  11240. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11241.  
  11242.           TITLE:    Btrieve DATE Data Type and BASIC
  11243.    DOCUMENT ID#:    FYI.A.2110
  11244.            DATE:    04MAR92
  11245.         PRODUCT:    Btrieve
  11246. PRODUCT VERSION:    ALL
  11247.      SUPERSEDES:    NA
  11248.  
  11249.         SYMPTOM:    NA
  11250.  
  11251. ISSUE/PROBLEM
  11252.  
  11253.     Developing Btrieve applications with Microsoft BASIC PDS 7.X or Visual Basic v1.0, the Btrieve DATE data type is required if sorting on a date field.
  11254.  
  11255. SOLUTION
  11256.  
  11257.     The Btrieve documentation describes the DATE data type field as being stored internally as a 4-byte value.  The day and month are each stored in 1-byte binary format.  The year is stored as a 2-byte integer value.  The day is in the first byte, the month in the second byte, and the year is a two byte word following the month.
  11258.  
  11259.     In order to match this key type in a BASIC application, create a structure using the user-defined TYPE and END TYPE statements.
  11260.  
  11261.       TYPE Date
  11262.           Day        AS STRING * 1
  11263.           Month      AS STRING * 1
  11264.           Year       AS INTEGER
  11265.       END TYPE
  11266.  
  11267.       DIM Birthdate AS Date -------> Name the structure using the DIM                                   statement for BASIC PDS 7.X
  11268.  
  11269.       Global Birthdate AS Date ----> Name the structure using the
  11270.                                      Globalstatement for Visual Basic v1.0
  11271.  
  11272.     Assign values to these variables using the MKI$ and the CHR$ functions. Since the day and month variables need to be stored as a 1 byte string, the integer values must be converted to string values using the MKI$ or CHR$ function.
  11273.  
  11274.       Birthdate.Day   = MKI$(20)                 Birthdate.Day   = CHR$(20)
  11275.       Birthdate.Month = MKI$(6)         OR       Birthdate.Month = CHR$(6)
  11276.       Birthdate.Year  = 1999                     Birthdate.Year  = 1999
  11277.  
  11278.     The MKI$ function converts a 2-byte integer to a 2-byte string. The CHR$ function converts a decimal value to its equivalent ASCII charachter.
  11279.  
  11280.     Since the day and month variables will never exceed 255, only the low-order byte is being manipulated. Either function will store the same value.
  11281.  
  11282.      NOTE: Visual Basic v1.0 does not support the MKI$ function, therefore,
  11283.            the CHR$ function must be used instead.
  11284.  
  11285.     Once these values have been inserted into the Btrieve file, the same birthdate structure can be used as a key buffer parameter to retrieve the data with a GET operation.  Once the record is returned into the birthdate structure, the day and month variables need to be converted back to their numeric values.
  11286.  
  11287.       CALL BTRVFAR(GETFIRST%, PosBlk$, VARPTR(DataBuffer), VARSEG(DataBuffer),_
  11288.                    BufLen%, BirthDate, KeyNum%)  ---> For PDS 7.X
  11289.  
  11290.       Status%=BTRCALL(GETFIRST%, PosBlk$, DataBuffer, BufLen%, BirthDate,
  11291.                       KeyBufLen%, KeyNum%) ----> For Visual Basic 1.0
  11292.  
  11293.     The conversion can be accomplished with the ASC function which returns the numeric value of the equivalent ASCII character.
  11294.  
  11295.       Day%   = ASC(Birthdate.Day)
  11296.       Month% = ASC(Birthdate.Month)
  11297.       Year%  = Birthdate.Year
  11298.  
  11299.  
  11300.  
  11301.  
  11302. FYI:     Watcom Compiler Switch /oaxt
  11303.                                      FYI
  11304.  
  11305. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11306.  
  11307.           TITLE:    Watcom Compiler Switch /oaxt
  11308.    DOCUMENT ID#:    FYI.A.3833
  11309.            DATE:    02MAR92
  11310.         PRODUCT:    WATCOM C Compiler
  11311. PRODUCT VERSION:    8.5
  11312.      SUPERSEDES:    NA
  11313.  
  11314.         SYMPTOM:    NA
  11315.  
  11316.  
  11317. ISSUE/PROBLEM
  11318.  
  11319.     If a program is compiled with Watcom C/286 compiler and the /oaxt switch was used for optimization, the program will not work.  If the /oaxt switch is  not used, the program will work.
  11320.  
  11321. SOLUTION
  11322.  
  11323.     There is a problem with the /oaxt switch.  The Data Segment does not get updated correctly, and incorrect code will be produced.
  11324.  
  11325.     The /oailt and /s switches can be used instead.
  11326.  
  11327.     This problem does not exist in version 9.0 of the compiler.
  11328.  
  11329.  
  11330.  
  11331.  
  11332. FYI:     SPXEstablishConnection
  11333.                                      FYI
  11334.  
  11335. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11336.  
  11337.           TITLE:    SPXEstablishConnection
  11338.    DOCUMENT ID#:    FYI.A.2656
  11339.            DATE:    02MAR92
  11340.         PRODUCT:    Network C for Windows
  11341. PRODUCT VERSION:    1.22
  11342.      SUPERSEDES:    NA
  11343.  
  11344.         SYMPTOM:    NA
  11345.  
  11346.  
  11347. ISSUE/PROBLEM
  11348.  
  11349.     Just a reminder:  (SPX Communications)
  11350.  
  11351.     When SPXEstablishConnection is being called and an ESR is being used, it may fire prior to the function completing.  On faster machines this is very likely, but on slower machines the function may complete, and the ESR will  fire afterwards.  If a developer codes an ESR with special control features it may work differently depending on the speed of the processor.
  11352.  
  11353.     In addition, the IPXWorkspace in the connection ECB is not completed until SPXListenForSequencePacket APIs are used.  It is not completed for SPXEstablishConnection.
  11354.  
  11355. SOLUTION
  11356.  
  11357.     NA
  11358.  
  11359.  
  11360.  
  11361.  
  11362. FYI:     Sockets: Long or Short Lived???
  11363.                                      FYI
  11364.  
  11365. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11366.  
  11367.           TITLE:    Sockets: Long or Short Lived???
  11368.    DOCUMENT ID#:    FYI.A.2655
  11369.            DATE:    02MAR92
  11370.         PRODUCT:    Network C for Windows
  11371. PRODUCT VERSION:    1.22
  11372.      SUPERSEDES:    NA
  11373.  
  11374.         SYMPTOM:    NA
  11375.  
  11376.  
  11377. ISSUE/PROBLEM
  11378.  
  11379.     If an SPX communication oriented TSR, or application that spawns another application is being written, it must open sockets as LONG LIVED.  This ensures that the socket will not be automatically closed when the first EOJ (End Of Job) is sent to the server.  SHORT LIVED sockets are automatically closed on the first EOJ.
  11380.  
  11381. SOLUTION
  11382.  
  11383.     NA
  11384.  
  11385.  
  11386.  
  11387.  
  11388. FYI:     Additional Status Codes Possible on Update Operation
  11389.                                      FYI
  11390.  
  11391. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11392.  
  11393.           TITLE:    Additional Status Codes Possible on Update Operation
  11394.    DOCUMENT ID#:    FYI.A.2342
  11395.            DATE:    02MAR92
  11396.         PRODUCT:    NetWare Btrieve NLM
  11397. PRODUCT VERSION:    5.15
  11398.      SUPERSEDES:    NA
  11399.  
  11400.         SYMPTOM:    Status 54 or Status 43 returned on an Update.
  11401.  
  11402.  
  11403. ISSUE/PROBLEM
  11404.  
  11405.     There are situations where a Btrieve Update operation might return a status 54 'Variable Page Error' or status 43 'Invalid Data Record Address'. The following scenario describes one such circumstance using NetWare Btrieve (NLM or VAP):
  11406.  
  11407.     Workstation 1 has accessed a file from within a transaction, resulting in a file-level lock.
  11408.  
  11409.     Workstation 2 is reading records from the same file, and wants to update a record that was inserted or updated by workstation 1 within the transaction.
  11410.  
  11411.     If workstation 2 reads this record to be updated, but then workstation 1 aborts the transaction, workstation 2 will receive the following non-zero status codes when issuing the update operation:
  11412.  
  11413.            if the records are variable length --> status 54
  11414.        if the records are NOT variable length --> status 43
  11415.  
  11416. SOLUTION
  11417.  
  11418.     NA
  11419.  
  11420.  
  11421.  
  11422.  
  11423. FYI:    "Runtime Error R6002, Floating..."
  11424.                                      FYI
  11425.  
  11426. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11427.  
  11428.           TITLE:    "Runtime Error R6002, Floating..."
  11429.    DOCUMENT ID#:    FYI.P.5628
  11430.            DATE:    28FEB92
  11431.         PRODUCT:    NetWare
  11432. PRODUCT VERSION:    v3.11
  11433.      SUPERSEDES:    NA
  11434.  
  11435.         SYMPTOM:    Runtime error r6002, Floating point processor not loaded.
  11436.  
  11437. ISSUE/PROBLEM
  11438.  
  11439.     When customer tried to access SYSCON and FCONSOLE from a 486/33 clone, would get the above error.
  11440.  
  11441. SOLUTION
  11442.  
  11443.     Had PC Tools tsr (sorry, don't know which one) loaded on 486/33 workstation. Unloaded and works great.
  11444.  
  11445.  
  11446.  
  11447.  
  11448. FYI:    Deleted Owner ID Causing Append Problems. NetWork C
  11449.                                      FYI
  11450.  
  11451. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11452.  
  11453.           TITLE:    Deleted Owner ID Causing Append Problems. NetWork C
  11454.    DOCUMENT ID#:    FYI.P.5622
  11455.            DATE:    28FEB92
  11456.         PRODUCT:    NetWare
  11457. PRODUCT VERSION:    v3.11
  11458.      SUPERSEDES:    NA
  11459.  
  11460.         SYMPTOM:    Deleted OwnerID causes append problems
  11461.  
  11462. ISSUE/PROBLEM
  11463.  
  11464.     When a file is created it is given an ownerID. If for some reason the owner of this file gets deleted from the bindery, the file will have an invalid ownerID.  When this file is opened by an NLM in append mode and writes to the file, the NLM will get an I/O error when the next write causes the file to expand past the next file allocation unit (default 4096).
  11465.  
  11466. SOLUTION
  11467.  
  11468.     If a user is deleted from the bindery all the files he owns should be changed to a valid ownerID or deleted.  If there is a file that is absolutely necessary to protect, making the ownerID supervisor will insure it will never have an invalid ownerID.
  11469.  
  11470.  
  11471.  
  11472.  
  11473. FYI:    Installing PUBLIC And SYSTEM Files From B: Drive
  11474.                                      FYI
  11475.  
  11476. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11477.  
  11478.           TITLE:    Installing PUBLIC And SYSTEM Files From B: Drive
  11479.    DOCUMENT ID#:    FYI.P.5620
  11480.            DATE:    28FEB92
  11481.         PRODUCT:    NetWare
  11482. PRODUCT VERSION:    v3.11
  11483.      SUPERSEDES:    NA
  11484.  
  11485.         SYMPTOM:    Not able to install Public and System files from drive b:
  11486.  
  11487. ISSUE/PROBLEM
  11488.  
  11489.     Customer was trying to install from drive A:, B:, C: none of which would allow him to load public and system files from drive B:.  It would check A: and\or C: but never B:
  11490.  
  11491. SOLUTION
  11492.  
  11493.     Install -J will allow you to select the drive, as documented in the Readme.311 file shipped with v3.11.
  11494.  
  11495.  
  11496.  
  11497.  
  11498. FYI:    Current API's Only Able To Access First 250 Print
  11499.                                      FYI
  11500.  
  11501. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11502.  
  11503.           TITLE:    Current API's Only Able To Access First 250 Print Jobs
  11504.    DOCUMENT ID#:    FYI.P.5619
  11505.            DATE:    28FEB92
  11506.         PRODUCT:    NetWare
  11507. PRODUCT VERSION:    v3.11
  11508.      SUPERSEDES:    NA
  11509.  
  11510.         SYMPTOM:    Queue functions for v3.11
  11511.  
  11512. ISSUE/PROBLEM
  11513.  
  11514.     In NetWare v2.15 and v3.10 a queue could only have 250 jobs.  Our API GetQueueJobList returns these 250 jobs.  When v3.11 came out the queues were allowed to hold about 1000 jobs.  With our current APIs you can only access the first 250 jobs of the queue.  There are NCPs that allow you to access the other jobs, but there are no APIs to call them.
  11515.  
  11516.  
  11517.  
  11518.  
  11519. FYI:     Btrieve and DOS 5.0
  11520.                                      FYI
  11521.  
  11522. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11523.  
  11524.           TITLE:    Btrieve and DOS 5.0
  11525.    DOCUMENT ID#:    FYI.A.2506
  11526.            DATE:    28FEB92
  11527.         PRODUCT:    Btrieve DOS
  11528. PRODUCT VERSION:    5.10a
  11529.      SUPERSEDES:    NA
  11530.  
  11531.         SYMPTOM:    Dos file handles remain open
  11532.  
  11533.  
  11534. ISSUE/PROBLEM
  11535.  
  11536.     If Btrieve is loaded using a C spawn function after DOS files have been opened, the handles for the DOS files are not released when the files are closed and the program terminates.  This does NOT happen if:
  11537.  
  11538.          - a version of DOS earlier than 5.0 is used
  11539.      or  - if Btrieve is loaded before going into the application
  11540.      or  - if Btrieve is loaded using a system call
  11541.      or  - if Share is loaded
  11542.  
  11543. SOLUTION
  11544.  
  11545.     NA
  11546.  
  11547.  
  11548.  
  11549.  
  11550. FYI:     Sparse Files on NetWare 3.x
  11551.                                      FYI
  11552.  
  11553. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11554.  
  11555.           TITLE:    Sparse Files on NetWare 3.x
  11556.    DOCUMENT ID#:    FYI.A.1031
  11557.            DATE:    28FEB92
  11558.         PRODUCT:    Btrieve
  11559. PRODUCT VERSION:    ALL
  11560.      SUPERSEDES:    NA
  11561.  
  11562.         SYMPTOM:    Btrieve file size larger than the disk volume size
  11563.  
  11564. ISSUE/PROBLEM
  11565.  
  11566.     A problem has been seen where a Btrieve file appears to be many times larger than the actual hard disk size.  A DIR on this file showed the file size to be in excess of 400 megabytes, even though the hard disk was only 150 megabytes in size.  This occured under NetWare 386 version 3.11 using the Btrieve NLM version 5.15 patched up to #49.  This phenomenon occurs when NetWare creates a sparse file, which causes a DIR to show a size much larger than what was actually allocated.
  11567.  
  11568.     The Btrieve application had been running successfully for several months with no problems, but recently several new workstations had been installed on the ethernet network.  Also, several different shell versions were being used, up to but not including the latest version (3.22a).  What caused the Btrieve file to become a sparse file was not determined, but a Butil -Recover followed by a Butil -Load successfully rebuilt the file, after which, the sparse file was deleted.
  11569.  
  11570.  
  11571.  
  11572.  
  11573. FYI:     NetWare Lite patches
  11574.                                      FYI
  11575.  
  11576. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11577.  
  11578.           TITLE:    NetWare Lite patches
  11579.    DOCUMENT ID#:    FYI.A.1030
  11580.            DATE:    28FEB92
  11581.         PRODUCT:    NetWare Lite
  11582. PRODUCT VERSION:    1.0
  11583.      SUPERSEDES:    NA
  11584.  
  11585.         SYMPTOM:
  11586.  
  11587. ISSUE/PROBLEM
  11588.  
  11589.     A variety of problems.  Anyone using NetWare Lite should get and apply these patches.
  11590.  
  11591. SOLUTION
  11592.  
  11593.     Patches are available for download from the CompuServe NOVLIB forum. Currently, the latest patches are in the file NWL004.ZIP, which can be downloaded from data library 1.
  11594.  
  11595.  
  11596.  
  11597.  
  11598. FYI:     DR DOS problems
  11599.                                      FYI
  11600.  
  11601. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11602.  
  11603.           TITLE:    DR DOS problems
  11604.    DOCUMENT ID#:    FYI.A.1029
  11605.            DATE:    28FEB92
  11606.         PRODUCT:    DR DOS
  11607. PRODUCT VERSION:    6.0
  11608.      SUPERSEDES:    NA
  11609.  
  11610.         SYMPTOM:    NA
  11611.  
  11612.  
  11613. ISSUE/PROBLEM
  11614.  
  11615.     There are several patches available for DR DOS version 6.0 which fix a wide variety of problems.  Anyone using DR DOS v6.0 should get and apply these patches.
  11616.  
  11617. SOLUTION
  11618.  
  11619.     Patches may be acquired in several ways:
  11620.  
  11621.       1. download the patches from their CompuServe Forum called DRFORUM;
  11622.  
  11623.       2. request patches via mail by calling Digital Research directly
  11624.          at 408-646-6464;
  11625.  
  11626.       3. request patches via mail by faxing Digital Research at 408-649-8209.
  11627.  
  11628.  
  11629.  
  11630.  
  11631. FYI:     Repeated SELECT Statement Returns Inaccurate Data
  11632.                                      FYI
  11633.  
  11634. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11635.  
  11636.           TITLE:    Repeated SELECT Statement Returns Inaccurate Data
  11637.    DOCUMENT ID#:    FYI.A.1027
  11638.            DATE:    28FEB92
  11639.         PRODUCT:    NetWare SQL 386 NLM
  11640. PRODUCT VERSION:    2.11
  11641.      SUPERSEDES:    NA
  11642.  
  11643.         SYMPTOM:    Different data returned when statement executed twice.
  11644.  
  11645.  
  11646. ISSUE/PROBLEM
  11647.  
  11648.     A SELECT statement with an ORDER BY clause using non-indexed fields returns inconsistent data.  The first time the statement is executed the appropriate data is returned.  Subsequent executions of the same statement only return a portion of the data, which seemed to be the last records retrieved during the first execution of the statement.
  11649.  
  11650. SOLUTION
  11651.  
  11652.     NA
  11653.  
  11654.  
  11655.  
  11656.  
  11657. FYI:     PressAnyKeyToContinue Displays Wrong Message
  11658.                                      FYI
  11659.  
  11660. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11661.  
  11662.           TITLE:    PressAnyKeyToContinue Displays Wrong Message
  11663.    DOCUMENT ID#:    FYI.A.4111
  11664.            DATE:    26FEB92
  11665.         PRODUCT:    Network C for NLMs
  11666. PRODUCT VERSION:    SDKb
  11667.      SUPERSEDES:    NA
  11668.  
  11669.         SYMPTOM:    NA
  11670.  
  11671.  
  11672. ISSUE/PROBLEM
  11673.  
  11674.     The PressAnyKeyToContinue() displays the message <Press any to continue> rather than <Press any key to continue>.
  11675.  
  11676. SOLUTION
  11677.  
  11678.     NA
  11679.  
  11680.  
  11681.  
  11682.  
  11683. FYI:     WHEREIS.C Does Not Support Multiple Volumes
  11684.                                      FYI
  11685.  
  11686. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11687.  
  11688.           TITLE:    WHEREIS.C Does Not Support Multiple Volumes
  11689.    DOCUMENT ID#:    FYI.A.3356
  11690.            DATE:    26FEB92
  11691.         PRODUCT:    Network C for NLMs
  11692. PRODUCT VERSION:    2.0b
  11693.      SUPERSEDES:    NA
  11694.  
  11695.         SYMPTOM:    Specified file is not found.
  11696.  
  11697. ISSUE/PROBLEM
  11698.  
  11699.     The WHEREIS NLM example in the 2.0b Network C For NLMs SDK does not support volumes other than SYS.  In other words, it will not search other volumes for files, even if a different volume is specified.
  11700.  
  11701. SOLUTION
  11702.     Make the following code changes to the dowhereis() function in the WHEREIS NLM and recompile.
  11703.  
  11704.      Before Modifications:
  11705.  
  11706.           void    dowhereis(char *s)
  11707.           {
  11708.            // startup the recursive file find operation
  11709.  
  11710.                findit(both);
  11711.                  chdir(dir);
  11712.           }
  11713.  
  11714.      After Modifications:
  11715.  
  11716.           void    dowhereis(char *s)
  11717.           {
  11718.            // startup the recursive file find operation
  11719.  
  11720.                 chdir(fsv);
  11721.               findit(both);
  11722.           }
  11723.  
  11724.     This change will force the current working directory to be the volume  specified when the file specification was issued.
  11725.  
  11726.  
  11727.  
  11728.  
  11729. FYI:     GetVolumeInfoWithNumber() Returns LONGs Instead of WORDs
  11730.                                      FYI
  11731.  
  11732. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11733.  
  11734.           TITLE:    GetVolumeInfoWithNumber() Returns LONGs Instead of WORDs
  11735.    DOCUMENT ID#:    FYI.A.3139
  11736.            DATE:    26FEB92
  11737.         PRODUCT:    Network C for NLMs
  11738. PRODUCT VERSION:    SDKb
  11739.      SUPERSEDES:    NA
  11740.  
  11741.         SYMPTOM:    The GetVolumeInfoWithNumber() function is returning LONGs instead of WORDs.
  11742.  
  11743.  
  11744. ISSUE/PROBLEM
  11745.  
  11746.     The GetVolumeInfoWithNumber() function is returning LONGs instead of WORDs. This can cause corruption of your data areas in your NLM, depending on how you defined the original variables.  This is only true when making this call to the local server, as everything is handled properly on remote calls.
  11747.  
  11748. SOLUTION
  11749.  
  11750.     Define the parameters as LONGs, and cast the pointer to WORD * when you make this function call.  If you initialize the parameters to zero first,  then this should work regardless of whether the call is made to a local or remote server.
  11751.  
  11752.  
  11753.  
  11754.  
  11755. FYI:     Creating Basic Quick Libraries For Btrieve Interfaces
  11756.                                      FYI
  11757.  
  11758. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11759.  
  11760.           TITLE:    Creating Basic Quick Libraries For Btrieve Interfaces
  11761.    DOCUMENT ID#:    FYI.A.2109
  11762.            DATE:    26FEB92
  11763.         PRODUCT:    Btrieve for DOS
  11764. PRODUCT VERSION:    ALL
  11765.      SUPERSEDES:    NA
  11766.  
  11767.         SYMPTOM:    NA
  11768.  
  11769.  
  11770. ISSUE/PROBLEM
  11771.  
  11772.     When developing Btrieve applications using Microsoft QuickBasic version 4.X or 7.X using the QuickBasic interpreter environment, a Quick Library must be created which includes the required Btrieve interface.
  11773.  
  11774. SOLUTION
  11775.  
  11776.      For Microsoft PDS 7.X:
  11777.  
  11778.                                 |--> Name of Quick Library
  11779.                                 |
  11780.        Link /q bc7rbtrv.obj, bc7.qlb, , qbx.lib qbxqlb.lib;
  11781.                  |                             |
  11782.                  |--> Btrieve Interface        |--> Required Libraries
  11783.  
  11784.  
  11785.  
  11786.     To load the QuickBasic environment to include the newly created Quick Library execute the following command:
  11787.  
  11788.     QBX /L BC7
  11789.  
  11790.  
  11791.  
  11792.     For Microsoft QuickBasic 4.X:
  11793.  
  11794.                                 |--> Name of Quick Library
  11795.                                 |
  11796.        Link /q qbixbtrv.obj, bc4.qlb, , bqlb4X.lib;
  11797.                  |                           |
  11798.                  |--> Btrieve Interface      |--> Required Libraries
  11799.                                                   X = 5 for QB4.5
  11800.                                                   X = 0 for QB4.0
  11801.  
  11802.     To load the QuickBasic environment to include the newly created Quick Library execute the following command:
  11803.  
  11804.     QB /L BC4
  11805.  
  11806.  
  11807.  
  11808.  
  11809. FYI:     Number of NLM Connections
  11810.                                      FYI
  11811.  
  11812. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11813.  
  11814.           TITLE:    Number of NLM Connections
  11815.    DOCUMENT ID#:    FYI.A.1651
  11816.            DATE:    26FEB92
  11817.         PRODUCT:    NetWare Operating System
  11818. PRODUCT VERSION:    3.11
  11819.      SUPERSEDES:    NA
  11820.  
  11821.         SYMPTOM:    NA
  11822.  
  11823.  
  11824. ISSUE/PROBLEM
  11825.  
  11826.     How many NLM connections are supported for each "flavor" of NetWare v3.11?
  11827.  
  11828. SOLUTION
  11829.  
  11830.     Each "flavor" of NetWare 3.11 (1 user, 100 user, etc.) supports exactly  100 NLM connections, even though the number of remote connections varies.
  11831.  
  11832.  
  11833.  
  11834.  
  11835. FYI:     Bconsole Out of Memory Problem
  11836.                                      FYI
  11837.  
  11838. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11839.  
  11840.           TITLE:    Bconsole Out of Memory Problem
  11841.    DOCUMENT ID#:    FYI.A.3355
  11842.            DATE:    25FEB92
  11843.         PRODUCT:    NetWare Btrieve NLM
  11844. PRODUCT VERSION:    5.15
  11845.      SUPERSEDES:    FYI.A.3006
  11846.  
  11847.         SYMPTOM:    CreatePortal returned error -2
  11848.  
  11849.  
  11850. ISSUE/PROBLEM
  11851.  
  11852.     (The following information is an addendum to FYI.A.3006.)
  11853.  
  11854.     Bconsole returns the above error when more than thirteen files are opened on multiple workstations.  The complete description of the error message is "The system was unable to allocate additional memory".  This message is received when the user attempts to view the list of open files for a specific user.  The message will only be received when attempting to view users who have more than thirteen files opened.  If only one user has more than thirteen files open the message is not displayed and program execution continues normally.
  11855.  
  11856. SOLUTION
  11857.  
  11858.     This problem has been reported.  Currently the only work-around is to use the Bconsole NLM.
  11859.  
  11860.  
  11861.  
  11862.  
  11863. FYI:    File server crash while printing to LPT1
  11864.                                      FYI
  11865.  
  11866. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11867.  
  11868.           TITLE:    File server crash while printing to LPT1
  11869.    DOCUMENT ID#:    FYI.P.5580
  11870.            DATE:    22FEB92
  11871.         PRODUCT:    NetWare
  11872. PRODUCT VERSION:    v3.11
  11873.      SUPERSEDES:    NA
  11874.  
  11875.         SYMPTOM:    File server crash while printing to LPT1
  11876.  
  11877. ISSUE/PROBLEM
  11878.  
  11879.     File server would crash while printing to LPT1 on the file server running NetWare v3.11 but not a problem when customer was running NetWare v2.15.
  11880.  
  11881. SOLUTION
  11882.  
  11883.     There is was conflict with the DTC 3280a SCSI controller and LPT1.  Customer changed LPT1 on the file server to no interrupts and this corrected the problem.
  11884.  
  11885.  
  11886.  
  11887.  
  11888. FYI:    "Parsed Driver Configuration Has Failed"
  11889.                                      FYI
  11890.  
  11891. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11892.  
  11893.           TITLE:    "Parsed Driver Configuration Has Failed"
  11894.    DOCUMENT ID#:    FYI.P.5601
  11895.            DATE:    21FEB92
  11896.         PRODUCT:    NetWare
  11897. PRODUCT VERSION:    v3.11
  11898.      SUPERSEDES:    NA
  11899.  
  11900.         SYMPTOM:    Problems Loading PS2SCSI Driver with IBM Model 57sx with Internal SCSI Subsystem
  11901.  
  11902. ISSUE/PROBLEM
  11903.  
  11904.     Attempting to load PS2SCSI driver when installing v3.11, and got the message:
  11905.  
  11906.         Supported Slot Values are: None.
  11907.         All supported options are in use.
  11908.         Error: Parsed driver configuration has failed.
  11909.  
  11910. SOLUTION
  11911.  
  11912.     Use the SCSI driver in PS2OPT.ZIP
  11913.  
  11914.  
  11915.  
  11916.  
  11917. FYI:    SYSCON Hangs When Run From Root Dir.
  11918.                                      FYI
  11919.  
  11920. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11921.  
  11922.           TITLE:    SYSCON Hangs When Run From Root Dir.
  11923.    DOCUMENT ID#:    FYI.P.5599
  11924.            DATE:    21FEB92
  11925.         PRODUCT:    NetWare
  11926. PRODUCT VERSION:    v3.11
  11927.      SUPERSEDES:    NA
  11928.  
  11929.         SYMPTOM:    SYSCON v3.62 hangs the workstations
  11930.  
  11931. ISSUE/PROBLEM
  11932.  
  11933.     Customer had just installed a new 386 network. When trying to go into SYSCON at any workstation from the root directory the background screen would turn red with white lettering and freeze. He was able to get into SYSCON no problem if he was in the system or public subdirectory.
  11934.  
  11935. SOLUTION
  11936.  
  11937.     The problem was that he had a IBM$RUN.OVL file in the root directory that was getting executed. After we renamed the IBM$RUN.OVL file in the root directory then SYSCON could find the IBM$RUN.OVL file in the public directory and SYSCON ran fine.
  11938.  
  11939.  
  11940.  
  11941.  
  11942. FYI:    "The System Library File SYS$MSG.DAT..."
  11943.                                      FYI
  11944.  
  11945. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11946.  
  11947.           TITLE:    "The System Library File SYS$MSG.DAT..."
  11948.    DOCUMENT ID#:    FYI.P.5598
  11949.            DATE:    21FEB92
  11950.         PRODUCT:    NetWare
  11951. PRODUCT VERSION:    v2.2
  11952.      SUPERSEDES:    NA
  11953.  
  11954.         SYMPTOM:    Error "The system library file SYS$MSG.DAT could not be opened Program terminated Initialization failure".
  11955.  
  11956. ISSUE/PROBLEM
  11957.  
  11958.     Customer had:
  11959.  
  11960.         CompuAdd 433 EISA  with Phoenix BIOS
  11961.         WD IDE 200 Meg drive
  11962.         Intel Ether Express NIC
  11963.         MS DOS v5.0 and v3.3
  11964.         5.25" drive A:, 3.5" drive B:
  11965.  
  11966.     Customer had 3.5" NetWare diskettes so he was doing a basic install from floppy drive B. He would get through most of the generation of the OS and to a point where it asked for SYSTEM-2. After installing that disk he got the above error messages. I had him try recopying the SYSTEM-2 diskette and even the SYS$MSG.DAT file from WSGEN diskette. No difference. Also tried DOS 3.3 in place of 5.0, and advanced install but the problem persisted.
  11967.  
  11968. SOLUTION
  11969.  
  11970.     Had to move the 3.5" drive to be drive A.
  11971.  
  11972.  
  11973.  
  11974.  
  11975. FYI:    Network Errors Copying NLM's From B: Drive
  11976.                                      FYI
  11977.  
  11978. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  11979.  
  11980.           TITLE:    Network Errors Copying NLM's From B: Drive
  11981.    DOCUMENT ID#:    FYI.P.5595
  11982.            DATE:    21FEB92
  11983.         PRODUCT:    NetWare
  11984. PRODUCT VERSION:    v3.11
  11985.      SUPERSEDES:    NA
  11986.  
  11987.         SYMPTOM:    Loading an NLM from B: drive with the drive door open.
  11988.  
  11989. ISSUE/PROBLEM
  11990.  
  11991.     The customer wanted to load a NLM from B: drive on his server and did not push the button in on the drive. It tried to read the drive for several minutes. In the process users were getting Network error Abort or Retry. After 5 minutes it came back and said something like drive B: not ready. He pushed the button in and the NLM loaded just fine.
  11992.  
  11993.     The customer reproduced it on a Compaq 386/33 System Pro and on two CompuAdd 386 systems not sure of Model. It was also recreated on a 486/33 System Pro. Being logged in as supervisor on the network did get the Network error Abort or Retry Did an SLIST and the server could not be found. After the 4 minutes the b: drive error was received the server took a couple of more minutes and then SLIST showed the file server.
  11994.  
  11995. SOLUTION
  11996.  
  11997.     Close the door when loading from B: or A:.  We were unable to duplicate this problem in the lab using a 386A for the file server.
  11998.  
  11999.  
  12000.  
  12001.  
  12002. FYI:    Errors With 4thshift Database
  12003.                                      FYI
  12004.  
  12005. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12006.  
  12007.           TITLE:    Errors With 4thshift Database
  12008.    DOCUMENT ID#:    FYI.P.5591
  12009.            DATE:    21FEB92
  12010.         PRODUCT:    NetWare
  12011. PRODUCT VERSION:    v2.2
  12012.      SUPERSEDES:    NA
  12013.  
  12014.         SYMPTOM:    "Write error on directory xxxxx=archive file" on the workstation and "abend:stack overflow detected by kernal" on the file server.
  12015.  
  12016. ISSUE/PROBLEM
  12017.  
  12018.     Customer was using a database called 4thshift on a NetWare v2.2 server that had an IDE drive in it.  After running for 4 months, the server went down with the above errors.
  12019.  
  12020. SOLUTION
  12021.  
  12022.     Generated NetWare again with new IDE286.ZIP driver and changed verify to on for the driver.  Customer says that without the verify on he had to continuously run VREPAIR on the drive.
  12023.  
  12024.  
  12025.  
  12026.  
  12027. FYI:     readdir() Abends When Used Against Remote 2.x Server
  12028.                                      FYI
  12029.  
  12030. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12031.  
  12032.           TITLE:    readdir() Abends When Used Against Remote 2.x Server
  12033.    DOCUMENT ID#:    FYI.A.3138
  12034.            DATE:    21FEB92
  12035.         PRODUCT:    Network C for NLMs
  12036. PRODUCT VERSION:    SDKb
  12037.      SUPERSEDES:    NA
  12038.  
  12039.        SYMPTOM:    Server abend
  12040.  
  12041.  
  12042. ISSUE/PROBLEM
  12043.  
  12044.     There is a problem with the readdir() function in CLib 3.11 and PATCH311.NLM. If it is used against a remote 2.x server, the local server may abend.
  12045.  
  12046. SOLUTION
  12047.  
  12048.     There is currently no solution.
  12049.  
  12050.  
  12051.  
  12052.  
  12053. FYI:    Incompatibility With NetWare Lite, Acer 710 And
  12054.                                      FYI
  12055.  
  12056. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12057.  
  12058.           TITLE:    Incompatibility With NetWare Lite, Acer 710 And DE100
  12059.    DOCUMENT ID#:    FYI.P.5579
  12060.            DATE:    20FEB92
  12061.         PRODUCT:    NetWare Lite
  12062. PRODUCT VERSION:    v1.0
  12063.      SUPERSEDES:    NA
  12064.  
  12065.         SYMPTOM:    Workstation hangs with no error message.
  12066.  
  12067. ISSUE/PROBLEM
  12068.  
  12069.     Configuration:    ACER 710 file server, Dlink DE100, NE1000 or Dlink drivers.
  12070.  
  12071.     While using the Dlink DE100 ethernet card with the NE1000 driver that came with NetWare Lite, or using the Dlink driver, the workstation would hang with no error message after typing NETX.
  12072.  
  12073. SOLUTION
  12074.  
  12075.     The technician on site concluded that there was an incompatibility between the ACER 710, the DE100 card, and NetWare Lite.  He replaced the DE100 card with an Arcnet card and is now working fine.
  12076.  
  12077.  
  12078.  
  12079.  
  12080. FYI:    Error Initializing LAN Driver. Racore 8110 NIC
  12081.                                      FYI
  12082.  
  12083. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12084.  
  12085.           TITLE:    Error Initializing LAN Driver. Racore 8110 NIC
  12086.    DOCUMENT ID#:    FYI.P.5574
  12087.            DATE:    20FEB92
  12088.         PRODUCT:    NetWare
  12089. PRODUCT VERSION:    NA
  12090.      SUPERSEDES:    NA
  12091.  
  12092.         SYMPTOM:    NA
  12093.  
  12094. ISSUE/PROBLEM
  12095.  
  12096.     Installing a Racore 8110 gets the error "Initializing lan driver: open-function failure".
  12097.  
  12098. SOLUTION
  12099.  
  12100.     Connect the Racore 8110 NIC to a MAU which allows it to complete its initializing process properly.  The card was initialized but in order to do a complete initialization it has to be connected to a MAU.
  12101.  
  12102.  
  12103.  
  12104.  
  12105. FYI:    NetWare Lite Used With Access Servers
  12106.                                      FYI
  12107.  
  12108. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12109.  
  12110.           TITLE:    NetWare Lite Used With Access Servers
  12111.    DOCUMENT ID#:    FYI.P.5573
  12112.            DATE:    20FEB92
  12113.         PRODUCT:    NetWare Lite
  12114. PRODUCT VERSION:    v1.0
  12115.      SUPERSEDES:    NA
  12116.  
  12117.         SYMPTOM:    NA
  12118.  
  12119. ISSUE/PROBLEM
  12120.  
  12121.     Can NetWare Lite be used with a Novell Access Server?
  12122.  
  12123. SOLUTION
  12124.  
  12125.     The official word is that it is not supported.  However, a customer has tried it and has had it working for one session only.  He said that it does not allow dynamic slots, so only one session can be using Lite at a time.  He tried using two sessions and it logged the second person in as if it were the first.  So, unofficially you can load the Access server and open a session and run Lite in that session.
  12126.  
  12127.     Engineering said that they were using dynamic sockets with NetWare Lite.
  12128.  
  12129.  
  12130.  
  12131.  
  12132. FYI:    "File Server Cannot Be Found" v2.2 Nondedicated, DOS 5.0
  12133.                                      FYI
  12134.  
  12135. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12136.  
  12137.           TITLE:    "File Server Cannot Be Found" v2.2 Nondedicated, DOS 5.0
  12138.    DOCUMENT ID#:    FYI.P.5567
  12139.            DATE:    20FEB92
  12140.         PRODUCT:    NetWare
  12141. PRODUCT VERSION:
  12142.      SUPERSEDES:    NA
  12143.  
  12144.         SYMPTOM:    Getting the error "A file server could not be found".
  12145.  
  12146. ISSUE/PROBLEM
  12147.  
  12148.     Configuration:Using 3c503 tp cards in both f/s and w/s.
  12149.               Running non-dedicated file server.
  12150.  
  12151.     Comcheck worked fine but every time IPX and NETX were loaded the above error was displayed.  Also sometimes getting the error "No free connection slots".
  12152.  
  12153. SOLUTION
  12154.  
  12155.     Booting the non-dedicated file server with something other than DOS 5.0 worked.
  12156.  
  12157.  
  12158.  
  12159.  
  12160. FYI:    "File Server Not Found". Trident Video Card
  12161.                                      FYI
  12162.  
  12163. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12164.  
  12165.           TITLE:    "File Server Not Found". Trident Video Card
  12166.    DOCUMENT ID#:    FYI.P.5566
  12167.            DATE:    20FEB92
  12168.         PRODUCT:    NetWare
  12169. PRODUCT VERSION:    v2.2
  12170.      SUPERSEDES:    NA
  12171.  
  12172.         SYMPTOM:    NA
  12173.  
  12174. ISSUE/PROBLEM
  12175.  
  12176.     Configuration: Clone server
  12177.                     Trident TVGA 8900 video card
  12178.                     3C503 NIC
  12179.  
  12180.     After installing NetWare v2.2 the server booted without problem.  However no workstations could see the server. Comcheck worked fine between all the machines. Tried various options on the 3C503 but all without success. One thing the customer mentioned was that for IPX to run COMCHECK he did not have to select a base memory address for the card.  Using the JUMPERS utility to configure the OS it would at first appear to let him select "none" for base memory but would not save it that way.
  12181.  
  12182. SOLUTION
  12183.  
  12184.     Customer read the manual that comes with his Trident graphics adapter. The card has an option for "fast access" or "slow access" for what he called an address decode. The DIP switch position 5 was set to off for fast access which apparently uses memory segments A000 to DFFF. He set that to on for slow access and every thing worked.
  12185.  
  12186.  
  12187.  
  12188.  
  12189. FYI:     CLIB Documentation Error
  12190.                                      FYI
  12191.  
  12192. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12193.  
  12194.           TITLE:    CLIB Documentation Error
  12195.    DOCUMENT ID#:    FYI.A.3832
  12196.            DATE:    20FEB92
  12197.         PRODUCT:    Network C for NLMs
  12198. PRODUCT VERSION:    SDKb
  12199.      SUPERSEDES:    NA
  12200.  
  12201.        SYMPTOM:    NA
  12202.  
  12203.  
  12204. ISSUE/PROBLEM
  12205.  
  12206.     In the NetWare Loadable Module Library Reference Volume I, page 3-8 under  the description of compiler option /3s, it mentions that stack-based  parameter passing is the compiler default.  This is not true.
  12207.  
  12208. SOLUTION
  12209.  
  12210.     Register based parameter passing (switch /3r) is the compiler default for the Watcom 32 bit compiler.
  12211.  
  12212.  
  12213.  
  12214.  
  12215. FYI:     Btrieve Pascal Examples
  12216.                                      FYI
  12217.  
  12218. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12219.  
  12220.           TITLE:    Btrieve Pascal Examples
  12221.    DOCUMENT ID#:    FYI.A.1744
  12222.            DATE:    20FEB92
  12223.         PRODUCT:    Btrieve for DOS
  12224. PRODUCT VERSION:    5.10a
  12225.      SUPERSEDES:    NA
  12226.  
  12227.        SYMPTOM:    Status 25 or 27 on a Create
  12228.  
  12229. ISSUE/PROBLEM
  12230.  
  12231.     The sample Pascal programs in the Btrieve Programmer's Manual (April 1990 edition) were written for IBM (or Microsoft) Pascal.  Programmers using Turbo Pascal can not use the examples straight out of the book because of the difference in the way "string" variables work in the two languages. In Turbo Pascal, a variable declared as "string[4]" is actually 5 bytes long, which includes a length byte indicating the significant amount of data in the remaining 4 bytes.  Btrieve, however, does not expect this length byte, and will try to interpret it as a general data byte.  Specifically, the Btrieve Create example in Appendix D will result in a status 25 - 'Create I/O Error', 27 - 'Invalid Key Position', or possibly other errors if used in a Turbo Pascal program.  The following changes should be made in order for the example to function properly under Turbo Pascal:
  12232.  
  12233.     a)    The key specification must include a 4-byte "Not used" field.  The sample program has this declared as NOT_USED : string[4]; which is actually a 5-byte field.  This will cause a status 27 to be returned on the Btrieve create call.  Change this variable to NOT_USED : ARRAY [1..4] OF char;
  12234.  
  12235.     b)    Similarly, the file specification includes a 4-byte "Not used" field as well as a 2-byte "Reserved" field.  The sample program declares these as NOT_USED : string[4];  and  RESERVED : string[2]; respectively.  These may also produce a status 27 on the Btrieve create call.  Change the data type of these fields to ARRAY [1..x] OF char.
  12236.  
  12237.     c)    The KeyBuffer parameter passed on the BTRV create call must contain the name of the file to be created.  The example uses a variable declared as FILE_NAME : string[17];  and then calls Btrieve with this variable as the key buffer (5th) parameter.  When Btrieve looks at FILE_NAME, the first thing it sees is the length byte, which is generally not a legal character for a DOS file name, and a status 25 will be returned.  To fix this, either declare this parameter as an ARRAY [1..x] OF char or pass it to Btrieve with a [1] subscript, for example:
  12238.  
  12239.         STATUS := BTRV (B_CREATE, POS_BLK, ..., FILE_NAME[1], 0);
  12240.  
  12241.     In addition, many of the sample programs define the data buffer with a variant record.  This is not necessary in Turbo Pascal.  For example, the Get First example defines and uses the data buffer as follows:
  12242.  
  12243.      type
  12244.        EMP_REC = record
  12245.          case integer of
  12246.          1: (NAME      : string(20);
  12247.              AGE       : string(2);
  12248.              HIRE_DATE : string(6));
  12249.          2: (ENTIRE    : string(28));
  12250.        end;
  12251.      var
  12252.        DATA_BUF : EMP_REC;
  12253.        ...
  12254.      begin
  12255.        ...
  12256.        STATUS := BTRV(B_GET_FIRST, POS_BLK, DATA_BUF.ENTIRE, DATA_LEN,
  12257.                       KEY_BUF, 2);
  12258.  
  12259.     When using Turbo Pascal, you can use a simple record type, such as:
  12260.  
  12261.      type
  12262.        EMP_REC = record
  12263.          NAME      : string[20];
  12264.          AGE       : string[2];
  12265.          HIRE_DATE : string[6]
  12266.        end;
  12267.  
  12268.     Then, just specify DATA_BUF as the 3rd parameter:
  12269.  
  12270.      STATUS := BTRV(B_GET_FIRST, POS_BLK, DATA_BUF, DATA_LEN, KEY_BUF, 2);
  12271.  
  12272. SOLUTION
  12273.  
  12274.     NA
  12275.  
  12276.  
  12277.  
  12278.  
  12279. FYI:     Loading DLLs Explicitly in Windows
  12280.                                      FYI
  12281.  
  12282. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12283.  
  12284.           TITLE:    Loading DLLs Explicitly in Windows
  12285.    DOCUMENT ID#:    FYI.A.1650
  12286.            DATE:    20FEB92
  12287.         PRODUCT:    Network C for Windows
  12288. PRODUCT VERSION:    v1.22
  12289.      SUPERSEDES:    NA
  12290.  
  12291.        SYMPTOM:    NA
  12292.  
  12293. ISSUE/PROBLEM
  12294.  
  12295.     How do you develop a Windows program that is NetWare aware, without relying on NetWare being there?  Normally, if a Windows program makes any calls to any NetWare C Interface-Windows DLL, that DLL is loaded implicitly (automatically) by Windows at run-time.  All of these DLLs except the NWIPXSPX.DLL require access to functions in the NETWARE.DRV (which in actuality is a DLL).  NETWARE.DRV is NOT loaded if the NetWare shell is not loaded before starting Windows.
  12296.  
  12297. SOLUTION
  12298.  
  12299.     Load the DLLs explicitly instead of implicitly, as follows:
  12300.  
  12301.     a)    Determine if the NETWARE.DRV is loaded:
  12302.  
  12303.          HANDLE hNetWare;
  12304.  
  12305.          hNetWare = GetModuleHandle("NETWARE.DRV");
  12306.          if (hNetWare == NULL)
  12307.             // not loaded
  12308.          else
  12309.             // loaded!
  12310.  
  12311.     b)    See if you can load the DLL (in this case, NWBIND.DLL):
  12312.  
  12313.          HANDLE hDLL;
  12314.  
  12315.          hDLL = LoadLibrary("NWBIND.DLL");
  12316.          if (hDLL < 32)
  12317.             // some kind of error (file not found = 2)
  12318.          else
  12319.             // loaded!
  12320.  
  12321.     c)    Make the function(s) point to their location(s) in the DLL.  Below
  12322.          are two examples for accomplishing this:
  12323.  
  12324.          // This method uses the function string name
  12325.          // (very memory hungry; pointers + strings, slow load time)
  12326.          GetBinderyObjectID =
  12327.                 (WORD (FAR PASCAL *)()) GetProcAddress(hDLL, "GetBinderyObjectID"
  12328.     ;
  12329.          // This method uses the function ordinal number (in this case, 14)
  12330.          // (little memory; just pointers, very fast)
  12331.          GetBinderyObjectID =
  12332.                 (WORD (FAR PASCAL *)()) GetProcAddress(hDLL, (LPSTR)14);
  12333.  
  12334.     These steps also require the use of modified prototypes for the functions, so they are pointers to functions.  For example, to modify the prototype for GetBinderyObjectID(), change the line in the NWBINDRY.H file from:
  12335.  
  12336.       extern WORD FAR PASCAL GetBinderyObjectID(char   far *objectName,
  12337.                                                 WORD   objectType,
  12338.                                                 DWORD  far *objectID );
  12339.  
  12340.     to:
  12341.  
  12342.       WORD (FAR PASCAL *GetBinderyObjectID)(char   far *objectName,
  12343.                                             WORD   objectType,
  12344.                                             DWORD  far *objectID );
  12345.  
  12346.     In addition, do NOT import the functions from the DLLs you explicitly load.  The actual calls to the functions do not have to be changed once all the above steps are taken.
  12347.  
  12348.  
  12349.  
  12350.  
  12351. FYI:    Unable To Download Fonts. Bankstar App.
  12352.                                      FYI
  12353.  
  12354. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12355.  
  12356.           TITLE:    Unable To Download Fonts. Bankstar App.
  12357.    DOCUMENT ID#:    FYI.P.5560
  12358.            DATE:    19FEB92
  12359.         PRODUCT:    NetWare
  12360. PRODUCT VERSION:    v3.11
  12361.      SUPERSEDES:    NA
  12362.  
  12363.         SYMPTOM:    Unable to download fonts.
  12364.  
  12365. ISSUE/PROBLEM
  12366.  
  12367.     Using BANKSTAR application and BP1 (font package) to merge forms and download fonts.  It was working fine under NetWare v2.15c.   After upgrading to v3.11 it wouldn't download the fonts properly.  Tried upgrading the Pserver to the latest version to no avail.
  12368.  
  12369. SOLUTION
  12370.  
  12371.     He changed from BP1 to JETFORM which is another package that does the same thing and it works perfectly.  Seems to be some problem with BP1 and NetWare v3.11.
  12372.  
  12373.  
  12374.  
  12375.  
  12376. FYI:    "Invalid Drive Passed To Disk Process" v2.2 Install
  12377.                                      FYI
  12378.  
  12379. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12380.  
  12381.           TITLE:    "Invalid Drive Passed To Disk Process" v2.2 Install
  12382.    DOCUMENT ID#:    FYI.P.5558
  12383.            DATE:    19FEB92
  12384.         PRODUCT:    NetWare
  12385. PRODUCT VERSION:    v2.2
  12386.      SUPERSEDES:    NA
  12387.  
  12388.         SYMPTOM:    VREPAIR gets error "Invalid drive passed to disk process".
  12389.  
  12390. ISSUE/PROBLEM
  12391.  
  12392.     Using an IBM mod 80 with a SCSI drive.
  12393.  
  12394.     Everything installed with no problems.  While booting the server it came to mounting the volume which seemed okay but instead of saying mounted successful it said mounted UCCESSFUL (no S).  We explored things and finally ran VREPAIR which gave the above error.  We thought the controller or perhaps the drive had the problem.
  12395.  
  12396. SOLUTION
  12397.  
  12398.     Just to make sure we had them run install -f and select write track 0 information.  Once this was done the server booted up okay.
  12399.  
  12400.  
  12401.  
  12402.  
  12403. FYI:    Returning User To Home Directory After Exiting MENU
  12404.                                      FYI
  12405.  
  12406. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12407.  
  12408.           TITLE:    Returning User To Home Directory After Exiting MENU
  12409.    DOCUMENT ID#:    FYI.P.5555
  12410.            DATE:    19FEB92
  12411.         PRODUCT:    NetWare
  12412. PRODUCT VERSION:    v3.11, v2.2
  12413.      SUPERSEDES:    NA
  12414.  
  12415.         SYMPTOM:    NA
  12416.  
  12417. ISSUE/PROBLEM
  12418.  
  12419.     A customer wanted to execute an application from MENU then have the user end up in his home directory after exiting the application.
  12420.  
  12421. SOLUTION
  12422.  
  12423.      g:
  12424.      anyappldo
  12425.      f:
  12426.      cd user\%variablename%  (BOTH PERCENT SIGNS ARE NEEDED)
  12427.  
  12428.      login script
  12429.      DOS set variablename = "%login_name"
  12430.  
  12431.  
  12432.  
  12433.  
  12434. FYI:    Server And Clients Hang. Xircom ODI Driver
  12435.                                      FYI
  12436.  
  12437. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12438.  
  12439.           TITLE:    Server And Clients Hang. Xircom ODI Driver
  12440.    DOCUMENT ID#:    FYI.P.5548
  12441.            DATE:    18FEB92
  12442.         PRODUCT:    NetWare Lite
  12443. PRODUCT VERSION:    v1.0
  12444.      SUPERSEDES:    NA
  12445.  
  12446.         SYMPTOM:    Server and Client hangs, lockups, etc.
  12447.  
  12448. ISSUE/PROBLEM
  12449.  
  12450.     The customer had the Xircom Network Simplicity Kit which contains two Xircom adapters, Cable, T-connectors and two OEM versions of NetWare Lite. When using DOS 5.0 and coping files, the server and the client locks up.
  12451.  
  12452. SOLUTION
  12453.  
  12454.     The problem is with the ODI driver that ships with the Kit.   It has a known bug with DOS 5.0 that Xircom is working on currently. The work around is to use another version of DOS until the ODI is fixed. The name of the ODI driver shipped with the kit is PESMLID.COM and has a date of 12-11-91. With the file size of 19,826. All tech-support for NWLITE sold with the Simplicity kit is free through Xircom and customers should be directed to them at 1-800-367-0016.
  12455.  
  12456.  
  12457.  
  12458.  
  12459. FYI:    PCache Problems In NetWare Lite
  12460.                                      FYI
  12461.  
  12462. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12463.  
  12464.           TITLE:    PCache Problems In NetWare Lite
  12465.    DOCUMENT ID#:    FYI.P.5542
  12466.            DATE:    14FEB92
  12467.         PRODUCT:    NetWare Lite
  12468. PRODUCT VERSION:    v1.0
  12469.      SUPERSEDES:    NA
  12470.  
  12471.         SYMPTOM:    Nodes hang
  12472.  
  12473. ISSUE/PROBLEM
  12474.  
  12475.     Customer having severe problems with one or more nodes hanging frequently without any pattern. It would hang from DOS or within any application.
  12476.  
  12477. SOLUTION
  12478.  
  12479.     Stopped using PCache and some of the problems went away.
  12480.  
  12481.  
  12482.  
  12483.  
  12484. FYI:     NetWare Technical Overview
  12485.                                      FYI
  12486.  
  12487. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12488.  
  12489.           TITLE:    NetWare Technical Overview
  12490.    DOCUMENT ID#:    FYI.A.3831
  12491.            DATE:    11FEB92
  12492.         PRODUCT:    Network C for Windows
  12493. PRODUCT VERSION:    1.22
  12494.      SUPERSEDES:    NA
  12495.  
  12496.         SYMPTOM:    NA
  12497.  
  12498.  
  12499. ISSUE/PROBLEM
  12500.  
  12501.     The index for NetWare C Interface for Windows has references to the NetWare System Interface Technical Overview.  However, the Technical Overview is not part of the NetWare C Interface for Windows SDK.
  12502.  
  12503. SOLUTION
  12504.  
  12505.     The Technical Overview comes with NetWare C Interface for DOS, or it can be purchased separately by calling 800-RED-WORD.
  12506.  
  12507.  
  12508.  
  12509.  
  12510. FYI:     Multiple Threads Using The Same Socket
  12511.                                      FYI
  12512.  
  12513. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12514.  
  12515.           TITLE:    Multiple Threads Using The Same Socket
  12516.    DOCUMENT ID#:    FYI.A.2936
  12517.            DATE:    11FEB92
  12518.         PRODUCT:    NetWare OS/2 SDK
  12519. PRODUCT VERSION:    1.3a
  12520.      SUPERSEDES:    NA
  12521.  
  12522.         SYMPTOM:    NA
  12523.  
  12524.  
  12525. ISSUE/PROBLEM
  12526.  
  12527.     It is important to note that OS/2 and NetWare 3.x are both connection based operating systems, as opposed to the DOS operating system, which is socket based.  Under DOS, different processes should not use the same socket number.  The same rules apply under the OS/2 operating system, except when generating multiple threads under OS/2.  Multiple threads can share the same socket number, but each thread has its own connection number.  The main thread will open the socket once, and the rest of the threads will just use the socket.  SPX under OS/2 distinguishes the sending and receiving of packets for multiple threads using the same socket.  Also, it is important to note that all of the packets under the OS/2 environment are received in the same order they are sent, since the OS/2 operating system set them up in a queue.
  12528.  
  12529. SOLUTION
  12530.  
  12531.     NA
  12532.  
  12533.  
  12534.  
  12535.  
  12536. FYI:     NetBios Documentation Error
  12537.                                      FYI
  12538.  
  12539. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12540.  
  12541.           TITLE:    NetBios Documentation Error
  12542.    DOCUMENT ID#:    FYI.A.2935
  12543.            DATE:    11FEB92
  12544.         PRODUCT:    NetWare OS/2 SDK
  12545. PRODUCT VERSION:    1.3a
  12546.      SUPERSEDES:    NA
  12547.  
  12548.         SYMPTOM:    NA
  12549.  
  12550.  
  12551. ISSUE/PROBLEM
  12552.  
  12553.     The documentation for the OS/2 SPX section specifies the wrong SPX return codes for the following functions:
  12554.  
  12555.      SpxAbortConnection()
  12556.      SpxCancelPacket()
  12557.      SPXEstablishConnection()
  12558.      SpxEstablishConnection2()
  12559.      SpxGetConfiguration()
  12560.      SpxGetConnectionStatus()
  12561.      SpxGetConnectionStatus()
  12562.      SpxListenForConnection()
  12563.      SpxListenForConnection2()
  12564.      SpxListenForConnectionPacket()
  12565.      SpxSendSequencePacket()
  12566.      SpxTerminateConnection()
  12567.  
  12568.     The documentation specifies that the above SPX function calls return "0x3000 SPX_SUCCESSFUL".  This return code should be "0x0000 SPX_SUCCESSFUL" instead.  There is no way for an SPX function to return successful with 0x3000 as the return code.  The documentation should specify that the "0x3000" return code is for the ECB's completion code and not for the SPX function completion code.
  12569.  
  12570. SOLUTION
  12571.  
  12572.     NA
  12573.  
  12574.  
  12575.  
  12576.  
  12577. FYI:     Communications and VIPX.386 1.1
  12578.                                      FYI
  12579.  
  12580. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12581.  
  12582.           TITLE:    Communications and VIPX.386 1.1
  12583.    DOCUMENT ID#:    FYI.A.2654
  12584.            DATE:    11FEB92
  12585.         PRODUCT:    NetWare C Interface for Windows
  12586. PRODUCT VERSION:    1.22
  12587.      SUPERSEDES:    NA
  12588.  
  12589.        SYMPTOM:    Machine hangs
  12590.  
  12591.  
  12592. ISSUE/PROBLEM
  12593.  
  12594.     Using VIPX version 1.1 may cause the machine to hang as a result of calling the IPXCancelEvent function.  This results from a problem involving a circular ECB list that is posted to IPX via VIPX.
  12595.  
  12596. SOLUTION
  12597.  
  12598.     There is no workaround available at this time.
  12599.  
  12600.  
  12601.  
  12602.  
  12603. FYI:     Internals of the XQL Data Segment
  12604.                                      FYI
  12605.  
  12606. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12607.  
  12608.           TITLE:    Internals of the XQL Data Segment
  12609.    DOCUMENT ID#:    FYI.A.1745
  12610.            DATE:    10FEB92
  12611.         PRODUCT:    XQL for DOS
  12612. PRODUCT VERSION:    2.11
  12613.      SUPERSEDES:    NA
  12614.  
  12615.        SYMPTOM:    NA
  12616.  
  12617. ISSUE/PROBLEM
  12618.  
  12619.     When XQL is loaded, it allocates a 64K data segment which is where all its local variables are stored when executing the functions requested by an application.  Out of this 64K data segment there is a fixed amount of memory which is taken up by global data and data that is allocated at load-time.  The remaining memory is divided up according to the specified load-time parameters.  The following chart shows how the 64K buffer is divided up.  Note:  The use of expanded memory will not change the information below.  The benefit of expanded memory is that you will have more free memory available on your system once XQL loads.
  12620.  
  12621.        BYTES   DESCRIPTION
  12622.       ------   ---------------------------------------------------------
  12623.        13856   XQL's global data
  12624.          980   Memory allocated to hold information about active dictionary
  12625.          539   Current Session data structure
  12626.          867   Current View data structure
  12627.         1400   Join List data structures
  12628.         2267   Data buffer allocated at load-time which is used for swapping
  12629.                data structures to disk
  12630.         2062   Memory used for extended Btrieve operations
  12631.          896   Dictionary position blocks
  12632.          817   Miscellaneous key buffer, currency addresses, etc.
  12633.       ------
  12634.        23684   This is the fixed size of data that resides in XQL's 64K data segment.  There are 41852 bytes of data left for the load-time parameters.  Space will be allocated in the data segment for the /w, /t and /b parameters as follows:
  12635.  
  12636.            w   Fetch buffer.  w = value in /w: parameter
  12637.      t * 130   Transaction processing.  t = value in /t: parameter
  12638.                Defaults to 12.
  12639.     b * 1024   Heap buffer.  b = value in /b: parameter
  12640.     --------
  12641.        65536   If this number is exceeded, XQL will display an "insufficient memory" error and fail to load.
  12642.  
  12643.     1.    The following load parameters will cause insufficient memory
  12644.            xql /t:12 /v:8 /w:8000 /b:32 /e
  12645.  
  12646.            23684 + (12 * 130) + 8000 + (32 * 1024) = 66012
  12647.  
  12648.     2.    Dropping the /t parameter to 8 will allow XQL to load.
  12649.            xql /t:8 /v:8 /w:8000 /b:32 /e
  12650.  
  12651.            23684 + (8 * 130) + 8000 + (32 * 1024) = 65492
  12652.  
  12653. SOLUTION
  12654.  
  12655.     NA
  12656.  
  12657.  
  12658.  
  12659.  
  12660. FYI:    "Disk Error 51 Reading Drive x" NetWare Lite
  12661.                                      FYI
  12662.  
  12663. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12664.  
  12665.           TITLE:    "Disk Error 51 Reading Drive x" NetWare Lite
  12666.    DOCUMENT ID#:    FYI.P.5484
  12667.            DATE:    07FEB92
  12668.         PRODUCT:    NetWare Lite
  12669. PRODUCT VERSION:    v1.0
  12670.      SUPERSEDES:    NA
  12671.  
  12672.         SYMPTOM:    Disk error 51 reading drive x
  12673.  
  12674. ISSUE/PROBLEM
  12675.  
  12676.     Customer is experiencing disk error 51 reading drive when running NetWare Lite.  The error is a DOS extended error and is interpreted by Word Perfect as "network remote station not listening." This error happens when the connection is interrupted between the server and the client.
  12677.  
  12678. SOLUTION
  12679.  
  12680.     This error is usually hardware related.  Check the cabling, card interrupts, card I/O addresses, etc.  Rule out conflicts with the NIC card.
  12681.  
  12682.     If the above does not work, try using the following parameters when booting WP /nc/nk/ne/nh (i.e. wp/nc/nk/ne/nh).  If the error does not occur then experiment to see which parameter fixed the problem.  The definitions of the parameters are:
  12683.  
  12684.     /nc - cursor speed - the program is moving too fast for the hardware
  12685.     /nk - enhanced keyboard calls - basically disables enhanced  keyboard
  12686.                          (disables F11 and F12 among other  things)
  12687.     /ne - no expanded memory - disables the expanded memory.
  12688.     /nh - disables hardware port calls - disables local hardware.
  12689.  
  12690.     (NOTE: not  recommended for machines  running WP locally)
  12691.  
  12692.     Another solution is as follows:
  12693.  
  12694.     When loading WP 5.1 if the user from the client will load the parameters /d-local drive: and /r (i.e. wp/d-c:/r), it should solve the problem.  This loads all the overflow files and error files to the local machine so it won't look on the server (that is down) for that information.
  12695.  
  12696.     /r - this prameter loads the overlays, error messages and about 580k of menus will be loaded into expanded memory on the client machine.
  12697.  
  12698.     /d-drive/directory - redirects the overflow files and temp buffers to the specified directory.  The specified directory can be a directory on the clients hard drive, a floppy or even a ram disk.
  12699.  
  12700.  
  12701.  
  12702.  
  12703. FYI:     MapDrive() And Search Drives
  12704.                                      FYI
  12705.  
  12706. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12707.  
  12708.           TITLE:    MapDrive() And Search Drives
  12709.    DOCUMENT ID#:    FYI.A.3354
  12710.            DATE:    07FEB92
  12711.         PRODUCT:    NetWare C Interface DOS
  12712. PRODUCT VERSION:    1.20
  12713.      SUPERSEDES:    NA
  12714.  
  12715.        SYMPTOM:    Mapped drives can not be deleted.
  12716.  
  12717. ISSUE/PROBLEM
  12718.  
  12719.     Numerous problems have been reported by developers when attempting to delete search drives with the MapDrive() function.  The function will successfully delete mapped search drives, but there are a few undocumented prerequisites.  Below is an example of what is required to delete a mapped search drive.
  12720.  
  12721.         GetSearchDriveVector(vectorBuffer);
  12722.         for(i=0;i<16;i++)
  12723.         if(vectorBuffer[i] == driveLetter - 'A') break;
  12724.         if(i == 16) i=0;
  12725.            else i++;                    /* Search Drives Are Relative*/
  12726.                                         /* to 1 not 0.               */
  12727.         cCode=MapDrive(connectionID,    /* File Server Connection ID */
  12728.                        NO_BASE_DRIVE,   /* No Relative Drive Mapping */
  12729.                        "",              /* No Path Required          */
  12730.                        DRIVE_DELETE,    /* Delete This Drive         */
  12731.                        i,               /* Number Of Search Drive    */
  12732.                        &driveLetter);   /* Drive To Be Deleted       */
  12733.  
  12734.     The two most common problems are not using the proper connectionID and not passing in the proper search drive number.  The connectionID is the file server to which the drive is mapped.  The search drive number is a number from 1 to 16 which indicates the order of the search drive in the search drive vector table.
  12735.  
  12736. SOLUTION
  12737.  
  12738.     NA
  12739.  
  12740.  
  12741.  
  12742.  
  12743. FYI:     Loading/Unloading Xtrieve Many Times Hangs DOS v5 Workstation
  12744.                                      FYI
  12745.  
  12746. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12747.  
  12748.           TITLE:    Loading/Unloading Xtrieve Many Times Hangs DOS v5 Workstation
  12749.    DOCUMENT ID#:    FYI.A.2417
  12750.            DATE:    07FEB92
  12751.         PRODUCT:    Xtrieve PLUS Network
  12752. PRODUCT VERSION:    4.10
  12753.      SUPERSEDES:    NA
  12754.  
  12755.        SYMPTOM:    Workstation hangs
  12756.  
  12757. ISSUE/PROBLEM
  12758.  
  12759.     On a standalone machine, running DOS 5.0, if you load and unload Xtrieve PLUS v4.10 approximately 14 times, the workstation will hang.  This problem was reproduced with the following products:
  12760.  
  12761.       DOS v5.0
  12762.       Btrieve for DOS v5.10a (patched to #114)
  12763.       XQLP v2.11a (shipped with Xtrieve PLUS v4.10)
  12764.       Xtrieve PLUS v4.10 (patched to #15)
  12765.  
  12766.     Xtrieve loaded Btrieve and XQLP automatically, and default load parameters were used.  The AUTOEXEC.BAT contained the statement: "prompt $p$g", and the CONFIG.SYS contained the statements: "files=60" and "buffers=20".
  12767.  
  12768. SOLUTION
  12769.  
  12770.     If SHARE.EXE (which ships with DOS 5.0) is loaded before loading and unloading Xtrieve, the workstation does not hang.
  12771.  
  12772.  
  12773.  
  12774.  
  12775. FYI:     VGA Card Conflict With Xtrieve PLUS
  12776.                                      FYI
  12777.  
  12778. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12779.  
  12780.           TITLE:    VGA Card Conflict With Xtrieve PLUS
  12781.    DOCUMENT ID#:    FYI.A.1922
  12782.            DATE:    07FEB92
  12783.         PRODUCT:    Xtrieve PLUS
  12784. PRODUCT VERSION:    4.10
  12785.      SUPERSEDES:    NA
  12786.  
  12787.        SYMPTOM:    Machine hangs when loading Xtrieve
  12788.  
  12789. ISSUE/PROBLEM
  12790.  
  12791.     When trying to load Xtrieve PLUS v4.10, the machine locks up, without even loading the record manager (or relational manager).  No error messages are displayed.
  12792.  
  12793. SOLUTION
  12794.  
  12795.     The problem appeared to be related to a particular VGA card, which when replaced by another brand, allowed Xtrieve PLUS to load at the workstation.
  12796.  
  12797.     The VGA card with which the problem occurred was an AHEAD AVGA Deluxe board; perhaps also referred to as the A2000 series.  The company name for this card is "AHEAD".
  12798.  
  12799.  
  12800.  
  12801.  
  12802. FYI:     Status 27 On a Btrieve Create
  12803.                                      FYI
  12804.  
  12805. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12806.  
  12807.           TITLE:    Status 27 On a Btrieve Create
  12808.    DOCUMENT ID#:    FYI.A.2416
  12809.            DATE:    06FEB92
  12810.         PRODUCT:    Btrieve
  12811. PRODUCT VERSION:    ALL
  12812.      SUPERSEDES:    NA
  12813.  
  12814.        SYMPTOM:    Status 27 - Invalid Key Position
  12815.  
  12816.  
  12817. ISSUE/PROBLEM
  12818.  
  12819.     When creating a Btrieve file, a position must be specified for each key segment.  This is the starting position of the segment within the data record.  If the value 0 is specified for a key position, a status 27 (Invalid Key Position) will be returned.
  12820.  
  12821. SOLUTION
  12822.  
  12823.     A key position must be between 1 and the specified record length.  This is true for both a BUTIL -CREATE or an application making a Btrieve call which performs an operation 14 (Create).
  12824.  
  12825.  
  12826.  
  12827.  
  12828. FYI:     The PUBLIC User in Xtrieve PLUS v4.10
  12829.                                      FYI
  12830.  
  12831. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12832.  
  12833.           TITLE:    The PUBLIC User in Xtrieve PLUS v4.10
  12834.    DOCUMENT ID#:    FYI.A.1921
  12835.            DATE:    05FEB92
  12836.         PRODUCT:    Xtrieve Plus Network
  12837. PRODUCT VERSION:    4.10
  12838.      SUPERSEDES:    NA
  12839.  
  12840.        SYMPTOM:    NA
  12841.  
  12842. ISSUE/PROBLEM
  12843.  
  12844.     Xtrieve's "PUBLIC" user - what is it?
  12845.  
  12846. SOLUTION
  12847.  
  12848.     Xtrieve PLUS v4.10 has introduced a user called "PUBLIC" in it's Security implementation.  This is not really a user, in the sense that one cannot use this username to get into a dictionary that has security installed.  It does not even have a password - but, again, that's because it is not a username.
  12849.  
  12850.     It can be thought of as a group (similar to NetWare - there can be individual users and groups).  The "Master" user can assign rights to this user, and then, for every individual user that's added, the rights do not have to be re-defined.  Each user can be assigned the rights that have been assigned to PUBLIC (similar to security equivalences in NetWare).
  12851.  
  12852.  
  12853.  
  12854.  
  12855. FYI:     Queue Functions For NetWare 3.11
  12856.                                      FYI
  12857.  
  12858. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12859.  
  12860.           TITLE:    Queue Functions For NetWare 3.11
  12861.    DOCUMENT ID#:    FYI.A.3222
  12862.            DATE:    04FEB92
  12863.         PRODUCT:    NetWare C Interface DOS
  12864. PRODUCT VERSION:    2.0a
  12865.      SUPERSEDES:    NA
  12866.  
  12867.        SYMPTOM:    NA
  12868.  
  12869. ISSUE/PROBLEM
  12870.  
  12871.     The API GetQueueJobList() returns up to 250 job numbers for a specified queue. In NetWare 2.15 and 3.10, a queue could only have 250 jobs. However, NetWare 3.11 allows up to 8000 jobs in a queue.  GetQueueJobList() can only access the first 250 jobs of a queue.
  12872.  
  12873. SOLUTION
  12874.  
  12875.     NA
  12876.  
  12877.  
  12878.  
  12879.  
  12880. FYI:     What is the Poll Function?
  12881.                                      FYI
  12882.  
  12883. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12884.  
  12885.           TITLE:    What is the Poll Function?
  12886.    DOCUMENT ID#:    FYI.A.3221
  12887.            DATE:    04FEB92
  12888.         PRODUCT:    Network C for NLMs
  12889. PRODUCT VERSION:    2.0b
  12890.      SUPERSEDES:    NA
  12891.  
  12892.        SYMPTOM:    NA
  12893.  
  12894. ISSUE/PROBLEM
  12895.  
  12896.     When writing TLI (Transport Layer Interface) code, a t_look call can be used to poll the status of a TLI event.  Alternatively, there is a function "poll" in the UNIX STREAMS section of the NLM SDKb which allows the same functionality.  This function takes an array of handles returned by t_open, and will return control to the application when an event occurs on any of these handles or the specified timeout expires.  This allows the TLI programmer to wait until an event happens and then handle it.  In addition: poll can only be passed 20 handles.
  12897.  
  12898. SOLUTION
  12899.  
  12900.     NA
  12901.  
  12902.  
  12903.  
  12904.  
  12905. FYI:     Calling EstablishConnection() From an NLM
  12906.                                      FYI
  12907.  
  12908. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12909.  
  12910.           TITLE:    Calling EstablishConnection() From an NLM
  12911.    DOCUMENT ID#:    FYI.A.3220
  12912.            DATE:    04FEB92
  12913.         PRODUCT:    Network C for NLMs
  12914. PRODUCT VERSION:    2.0b
  12915.      SUPERSEDES:    NA
  12916.  
  12917.        SYMPTOM:    NA
  12918.  
  12919. ISSUE/PROBLEM
  12920.  
  12921.     EstablishConnection() from an NLM fails when its client is a DOS workstation.
  12922.  
  12923. SOLUTION
  12924.  
  12925.     The DOS client uses an ESR (Event Service Routine) which keeps interrupts disabled while it's registering the client.  If the ListenForConnection() on the DOS client checks the inuse flag, the problem does not occur.
  12926.  
  12927.  
  12928.  
  12929.  
  12930. FYI:     rename() Directory Against a 2.x Server
  12931.                                      FYI
  12932.  
  12933. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12934.  
  12935.           TITLE:    rename() Directory Against a 2.x Server
  12936.    DOCUMENT ID#:    FYI.A.3219
  12937.            DATE:    04FEB92
  12938.         PRODUCT:    Network C for NLMs
  12939. PRODUCT VERSION:    2.0b
  12940.      SUPERSEDES:    NA
  12941.  
  12942.        SYMPTOM:    NA
  12943.  
  12944. ISSUE/PROBLEM
  12945.  
  12946.     The rename() API does not work on a directory when a 2.x file server is the target.
  12947.  
  12948. SOLUTION
  12949.  
  12950.     The rename() function takes an old name and a new name.  When the target is a 2.x server, the old name must be a full path and the new name should be the new directory name, without a path specified.
  12951.  
  12952.  
  12953.  
  12954.  
  12955. FYI:     ScanDirEntry Sequence Number
  12956.                                      FYI
  12957.  
  12958. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12959.  
  12960.           TITLE:    ScanDirEntry Sequence Number
  12961.    DOCUMENT ID#:    FYI.A.3218
  12962.            DATE:    04FEB92
  12963.         PRODUCT:    NetWare C Interface DOS
  12964. PRODUCT VERSION:    1.2
  12965.      SUPERSEDES:    NA
  12966.  
  12967.        SYMPTOM:    NA
  12968.  
  12969. ISSUE/PROBLEM
  12970.  
  12971.     When using the ScanDirEntry() API against a NetWare 2.x server, only one or two files are returned.  The sequence number is not being updated by this function when a 2.x server is detected.
  12972.  
  12973. SOLUTION
  12974.  
  12975.     To avoid this problem, either change the source code to update the sequence number, or use the sequence number returned in the DirStructure.
  12976.  
  12977.  
  12978.  
  12979.  
  12980. FYI:     Deleted OwnerID Causes Append Problems
  12981.                                      FYI
  12982.  
  12983. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  12984.  
  12985.           TITLE:    Deleted OwnerID Causes Append Problems
  12986.    DOCUMENT ID#:    FYI.A.3217
  12987.            DATE:    04FEB92
  12988.         PRODUCT:    Network C for NLMs
  12989. PRODUCT VERSION:    2.0b
  12990.      SUPERSEDES:    NA
  12991.  
  12992.        SYMPTOM:    I/O error from NLM
  12993.  
  12994. ISSUE/PROBLEM
  12995.  
  12996.     When a file is created, it is given an onwerID.  If, for some reason the owner of this file gets deleted from the bindery, the file will have an invalid ownerID.  When this file is opened by an NLM in append mode and writes are made to the file, the NLM will get an I/O error when a write occurs which causes the file to expand past the next file allocation unit (default 4096).  When using the Btrieve NLM, this problem generates a status 18 - "Disk Full".
  12997.  
  12998. SOLUTION
  12999.  
  13000.     If a user is deleted from the bindery all the files owned by that user should be assigned a valid ownerid or should be deleted.  If there is a file that it is absolutely neccessary to protect, making the ownerid supervisor will ensure it never has an invalid ownerID.
  13001.  
  13002.  
  13003.  
  13004.  
  13005. FYI:     Calling GlobalAlloc() from a Windows DLL
  13006.                                      FYI
  13007.  
  13008. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13009.  
  13010.           TITLE:    Calling GlobalAlloc() from a Windows DLL
  13011.    DOCUMENT ID#:    FYI.A.2934
  13012.            DATE:    04FEB92
  13013.         PRODUCT:    Network C for Windows
  13014. PRODUCT VERSION:    1.22
  13015.      SUPERSEDES:    NA
  13016.  
  13017.        SYMPTOM:    NA
  13018.  
  13019. ISSUE/PROBLEM
  13020.  
  13021.     When allocating an ECB (Event Control Block) dynamically using GlobalAlloc(), the following flags should be specified: GMEM_DDESHARE, GMEM_FIXED, GMEM_NOT_BANKED.  However, GlobalLock()  OR  GlobalWire() must be called, followed by GlobalPageLock().  The reason for calling GlobalPageLock() is to inform the Windows Kernel not to switch the memory containing the ECBs. This is very important when using ESRs.
  13022.  
  13023.     In any case, it is highly recommended that the ECB memory be locked in the DATA Segment. To accomplish this, declare the data segment containing both the ECBs and packet fragments as FIXED in the program's .DEF file.
  13024.  
  13025. SOLUTION
  13026.  
  13027.     NA
  13028.  
  13029.  
  13030.  
  13031.  
  13032. FYI:     HLLAPI Application Hangs
  13033.                                      FYI
  13034.  
  13035. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13036.  
  13037.           TITLE:    HLLAPI Application Hangs
  13038.    DOCUMENT ID#:    FYI.A.2831
  13039.            DATE:    04FEB92
  13040.         PRODUCT:    3270 Tools for DOS
  13041. PRODUCT VERSION:    1.5
  13042.      SUPERSEDES:    NA
  13043.  
  13044.        SYMPTOM:    Program hangs when WAIT function is called.
  13045.  
  13046. ISSUE/PROBLEM
  13047.  
  13048.     The wait function does not always return control to the calling application when the NWAIT option is set in Function-9: Set Session parameters.
  13049.  
  13050.     If the PS (Presentation Space) is changed before you call Function-24 (Query Host Update) HLLAPI returns a status 22 - 'PS updated'. Subsequent calls to Function-24 always return a status 22 regardless of whether or not the PS is changed.
  13051.  
  13052. SOLUTION
  13053.  
  13054.     The PTF253.ZIP file, located in library 9 of the NOVLIB forum on Compuserve contains a fix for this problem.
  13055.  
  13056.  
  13057.  
  13058.  
  13059. FYI:     Send_Data Verb Hangs
  13060.                                      FYI
  13061.  
  13062. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13063.  
  13064.           TITLE:    Send_Data Verb Hangs
  13065.    DOCUMENT ID#:    FYI.A.2830
  13066.            DATE:    04FEB92
  13067.         PRODUCT:    LU6.2 Tools for DOS
  13068. PRODUCT VERSION:    1.1
  13069.      SUPERSEDES:    NA
  13070.  
  13071.        SYMPTOM:    Send_Data verb hangs workstation
  13072.  
  13073. ISSUE/PROBLEM
  13074.  
  13075.     Send_Data verb hangs even after setting attach_pu.retcode = Incomplete.  It hangs (doesn't return) when the receive program is paused (and the pacing count is used up).  This behavior is only expected if attach_pu.return_code was set to Complete; when set to Incomplete, send_data is expected to return with some 'incomplete' error.
  13076.  
  13077. SOLUTION
  13078.  
  13079.     Currently, there is no work around.
  13080.  
  13081.  
  13082.  
  13083.  
  13084. FYI:     CPI-C Interface Support for NetWare LU6.2
  13085.                                      FYI
  13086.  
  13087. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13088.  
  13089.           TITLE:    CPI-C Interface Support for NetWare LU6.2
  13090.    DOCUMENT ID#:    FYI.A.2829
  13091.            DATE:    04FEB92
  13092.         PRODUCT:    LU6.2 Tools for DOS
  13093. PRODUCT VERSION:    1.2
  13094.      SUPERSEDES:    Netware LU6.2 Tools v1.2
  13095.  
  13096.        SYMPTOM:    NA
  13097.  
  13098. ISSUE/PROBLEM
  13099.  
  13100.     NetWare LU6.2 supports two IBM LU6.2 programming interfaces: CPI-C (Common Programming Interface for Communications) and APPC (Advanced Program-to-Program Communication).  CPI-C and APPC are two separate implementations of the SNA LU6.2 architecture.  Many, but not all, of the APPC functions are included in CPI-C.  Transaction programs using CPI-C can communicate with most of the CICS programs that use the APPC interface but there are some things that CPI-C does not support.  For example, it does not support PIP (Program Initialization Parameters), Locks, Map_Name, FMH_Data and Synch_Point.  CPI-C programs also do not control security.
  13101.  
  13102. SOLUTION
  13103.  
  13104.     NA
  13105.  
  13106.  
  13107.  
  13108.  
  13109. FYI:     Problem with GetBinderyObjectDiskSpaceLeft()
  13110.                                      FYI
  13111.  
  13112. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13113.  
  13114.           TITLE:    Problem with GetBinderyObjectDiskSpaceLeft()
  13115.    DOCUMENT ID#:    FYI.A.2828
  13116.            DATE:    04FEB92
  13117.         PRODUCT:    NetWare C Interface DOS
  13118. PRODUCT VERSION:    1.20
  13119.      SUPERSEDES:    NA
  13120.  
  13121.        SYMPTOM:    UsedDiskBlocks is returned instead of UnusedDiskBlocks
  13122.  
  13123. ISSUE/PROBLEM
  13124.  
  13125.     In the GetBinderyObjectDiskSpaceLeft() API, the value returned in the unusedDiskBlocks parameter is in fact the value for Used Disk Blocks of the specified object.  The returned value also includes the Used Disk Blocks for all the volumes on the specified server.
  13126.  
  13127. SOLUTION
  13128.  
  13129.     There is no work around available at this time.
  13130.  
  13131.  
  13132.  
  13133.  
  13134. FYI:     Undefined Symbols, while Loading an NLM under NetWare 3.10 FYI
  13135.                                      FYI
  13136.  
  13137. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13138.  
  13139.           TITLE:    Undefined Symbols, while Loading an NLM under NetWare 3.10
  13140.    DOCUMENT ID#:    FYI.A.2827
  13141.            DATE:    04FEB92
  13142.         PRODUCT:    Network C for NLMs
  13143. PRODUCT VERSION:    2.00
  13144.      SUPERSEDES:    N/A
  13145.  
  13146.        SYMPTOM:    "Undefine Symbols-GetFileServerID and GetLanAddress" error
  13147.  
  13148. ISSUE/PROBLEM
  13149.  
  13150.     If an NLM containing the API function, GetFileServerID, is loaded on a NetWare 3.10 server, an error will be returned saying the symbol "GetFileServerID" cannot be found.  This is because in NetWare 3.10, this function is named GetCurrentConnectionID; the 'GetFileServerID' API was implemented under NetWare 3.11 and will not work under NetWare 3.10.
  13151.  
  13152.     If the message, "Undefined Symbol for GetLanAddress" is returned under NetWare 3.10, then this function should not be used, because it is a brand new function implemented under NetWare 3.11 and does not work under NetWare 3.10.
  13153.  
  13154. SOLUTION
  13155.  
  13156.     Use GetCurrentConnectionID instead of GetFileServerID under NetWare 3.10.
  13157.  
  13158.  
  13159.  
  13160.  
  13161. FYI:     CLib GetVolumeNumber() Returns Garbage
  13162.                                      FYI
  13163.  
  13164. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13165.  
  13166.           TITLE:    CLib GetVolumeNumber() Returns Garbage
  13167.    DOCUMENT ID#:    FYI.A.1649
  13168.            DATE:    04FEB92
  13169.         PRODUCT:    Network C for NLMs
  13170. PRODUCT VERSION:    SDKb
  13171.      SUPERSEDES:    NA
  13172.  
  13173.        SYMPTOM:    Gargadge is returned for a volume number
  13174.  
  13175. ISSUE/PROBLEM
  13176.  
  13177.     GetVolumeNumber(), when called for a volume on a remote server, returns garbage for a volume number.
  13178.  
  13179. SOLUTION
  13180.  
  13181.     Actually, the volume number is returned in the first byte.  The remainder of the 2-byte integer, however, is not cleared, and contains the "old" information it had before the call.  For example:
  13182.  
  13183.      Source:
  13184.  
  13185.        int volNumber = 0xFFFFFFFF;
  13186.        GetVolumeNumber("SYS", &volNumber);
  13187.        printf("0x%X\n", volNumber);
  13188.  
  13189.      Output:
  13190.  
  13191.        0xFFFFFF00
  13192.  
  13193.     Just clear the volume number to 0's before making the call.
  13194.  
  13195.  
  13196.  
  13197.  
  13198. FYI:     C Interface - Windows & IPXTaskID Values
  13199.                                      FYI
  13200.  
  13201. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13202.  
  13203.           TITLE:    C Interface - Windows & IPXTaskID Values
  13204.    DOCUMENT ID#:    FYI.A.2653
  13205.            DATE:    03FEB92
  13206.         PRODUCT:    Network C for Windows
  13207. PRODUCT VERSION:    1.22
  13208.      SUPERSEDES:    NA
  13209.  
  13210.        SYMPTOM:    NA
  13211.  
  13212. ISSUE/PROBLEM
  13213.  
  13214.     What values can IPXTaskID be following IPXInitialize() or SPXInitialize calls?
  13215.  
  13216.     In ENHANCED mode, it can be any value, but most likely will be the value that was passed into the initialize calls.  It is not used and serves only as a dummy parameter.
  13217.  
  13218.     In STANDARD and REAL modes, it is still required and needs to be used.
  13219.  
  13220. SOLUTION
  13221.  
  13222.     NA
  13223.  
  13224.  
  13225.  
  13226.  
  13227. FYI:     System Calls & SetCapturePrintQueue
  13228.                                      FYI
  13229.  
  13230. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13231.  
  13232.           TITLE:    System Calls & SetCapturePrintQueue
  13233.    DOCUMENT ID#:    FYI.A.2652
  13234.            DATE:    03FEB92
  13235.         PRODUCT:    NetWare System Calls
  13236. PRODUCT VERSION:    1.0
  13237.      SUPERSEDES:    NA
  13238.  
  13239.        SYMPTOM:    NA
  13240.  
  13241. ISSUE/PROBLEM
  13242.  
  13243.     There is a documentation error for the SetCapturePrintQueue system call. The DL register must be set to the server connection ID for the server that contains the specified queue.
  13244.  
  13245. SOLUTION
  13246.  
  13247.     NA
  13248.  
  13249.  
  13250.  
  13251.  
  13252. FYI:     Unresolved Externals _end and _edata
  13253.                                      FYI
  13254.  
  13255. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13256.  
  13257.           TITLE:    Unresolved Externals _end and _edata
  13258.    DOCUMENT ID#:    FYI.A.1648
  13259.            DATE:    30JAN92
  13260.         PRODUCT:    Network C for NLMs
  13261. PRODUCT VERSION:    SDKb
  13262.      SUPERSEDES:    NA
  13263.  
  13264.        SYMPTOM:    NA
  13265.  
  13266.  
  13267. ISSUE/PROBLEM
  13268.  
  13269.     When linking, using NLMLINK, the linker reports two unresolved externals: _end and _edata.
  13270.  
  13271. SOLUTION
  13272.  
  13273.     Link in OPRELUDE.OBJ instead of PRELUDE.OBJ if using NLMLINK.  Both OPRELUDE.OBJ and NLMLINK are supplied on SDKa, NOT SDKb.  But, a number of programmers who have SDKb are still using NLMLINK.  It seems WLINK supplies these externals at link time and they are required by PRELUDE.OBJ, while NLMLINK does not supply them, and hence, OPRELUDE.OBJ must be linked in instead.
  13274.  
  13275.  
  13276.  
  13277.  
  13278. FYI:     WATCOM C/386 Compiler Documentation Error
  13279.                                      FYI
  13280.  
  13281. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13282.  
  13283.           TITLE:    WATCOM C/386 Compiler Documentation Error
  13284.    DOCUMENT ID#:    FYI.A.1647
  13285.            DATE:    30JAN92
  13286.         PRODUCT:    Network C for NLMs
  13287. PRODUCT VERSION:    SDKb
  13288.      SUPERSEDES:    NA
  13289.  
  13290.        SYMPTOM:    NA
  13291.  
  13292. ISSUE/PROBLEM
  13293.  
  13294.     The WATCOM C/386 manual, "Optimizing Compiler and Tools User's Guide" has an error in it on page 38.  A predefined macro, __NETWARE_386__, is described as being defined by the Novell/WATCOM C SQL Compiler.  These manuals ship with version 8.5 of the Watcom Compiler, which does NOT include Embedded SQL, and this was the only time this macro was defined in the past.
  13295.  
  13296. SOLUTION
  13297.  
  13298.     If you need to determine if your code is being compiled by the Watcom C/386 compiler, check for the __386__ and __WATCOMC__ macros to be defined as follows:
  13299.  
  13300.       #if defined(__WATCOMC__) && defined(__386__)
  13301.  
  13302.          // special code goes here
  13303.  
  13304.       #endif
  13305.  
  13306.  
  13307.  
  13308.  
  13309. FYI:     EMSNETX Bug
  13310.                                      FYI
  13311.  
  13312. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13313.  
  13314.           TITLE:    EMSNETX Bug
  13315.    DOCUMENT ID#:    FYI.A.1645
  13316.            DATE:    30JAN92
  13317.         PRODUCT:    EMSNETX
  13318. PRODUCT VERSION:    3.22
  13319.      SUPERSEDES:    NA
  13320.  
  13321.        SYMPTOM:    NA
  13322.  
  13323. ISSUE/PROBLEM
  13324.  
  13325.     Under certain conditions, file writes using EMSNETX v3.22 can become corrupted.  Specifically, this happens when the buffer being written from/to is in EMS memory, as well as the buffers the shell is using.  The error usually does not occur right away, but instead it occurs within one or two hours, with one to six bytes typically being corrupted each time.
  13326.  
  13327. SOLUTION
  13328.  
  13329.     Set CACHE BUFFERS=0 in NET.CFG or SHELL.CFG or don't use the EMS shell, to keep this from occurring.
  13330.  
  13331.  
  13332.  
  13333.  
  13334. FYI:     ChangeBinderyObjectPassword() as a Supervisor or Equivalent
  13335.                                      FYI
  13336.  
  13337. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13338.  
  13339.           TITLE:    ChangeBinderyObjectPassword() as a Supervisor or Equivalent
  13340.    DOCUMENT ID#:    FYI.A.1316
  13341.            DATE:    29JAN92
  13342.         PRODUCT:    NetWare C Interface DOS
  13343. PRODUCT VERSION:    1.20
  13344.      SUPERSEDES:    N/A
  13345.  
  13346.        SYMPTOM:    N/A
  13347.  
  13348. ISSUE/PROBLEM
  13349.  
  13350.     Suppose a user with supervisor equivalence or a supervisor wants to change a user's password using the APIs.  The use of ChangeBinderyObjectPassword() requires the old password as an input parameter.
  13351.  
  13352. SOLUTION
  13353.  
  13354.     Using the ChangeBinderyObjectPassword() and passing NULL as the old password parameter will work as follows...
  13355.  
  13356.     cCode = ChangeBinderyObjectPassword(userNameToChange,
  13357.         OT_USER,
  13358.         NULL,
  13359.         newPswd);
  13360.  
  13361.  
  13362.  
  13363.  
  13364. FYI:     ScheduleSleepAESProcessEvent Documentation Error
  13365.                                      FYI
  13366.  
  13367. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13368.  
  13369.           TITLE:    ScheduleSleepAESProcessEvent Documentation Error
  13370.    DOCUMENT ID#:    FYI.A.3830
  13371.            DATE:    28JAN92
  13372.         PRODUCT:    Network C for NLMs
  13373. PRODUCT VERSION:    SDKb
  13374.      SUPERSEDES:    NA
  13375.  
  13376.        SYMPTOM:    NA
  13377.  
  13378. ISSUE/PROBLEM
  13379.  
  13380.     In the documentation of ScheduleSleepAESProcessEvent, under the heading of Syntax, the function name is mentioned as ScheduleNoSleepAESProcessEvent.
  13381.  
  13382. SOLUTION
  13383.  
  13384.     It should be ScheduleSleepAESProcessEvent.
  13385.  
  13386.  
  13387.  
  13388.  
  13389. FYI:     CLib rename() Failure
  13390.                                      FYI
  13391.  
  13392. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13393.  
  13394.           TITLE:    CLib rename() Failure
  13395.    DOCUMENT ID#:    FYI.A.1646
  13396.            DATE:    28JAN92
  13397.         PRODUCT:    Network C for NLMs
  13398. PRODUCT VERSION:    SDKb
  13399.      SUPERSEDES:    NA
  13400.  
  13401.        SYMPTOM:    NA
  13402.  
  13403. ISSUE/PROBLEM
  13404.  
  13405.     The rename() function returns 0xFF when trying to rename directories on remote 2.x servers when the new directory name includes an extension. This is somewhat similar to the problem with mkdir() not making remote 2.x directories with extensions.
  13406.  
  13407. SOLUTION
  13408.  
  13409.     NA
  13410.  
  13411.  
  13412.  
  13413.  
  13414. FYI:     LoginToFileServer() Password
  13415.                                      FYI
  13416.  
  13417. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13418.  
  13419.           TITLE:    LoginToFileServer() Password
  13420.    DOCUMENT ID#:    FYI.A.2933
  13421.            DATE:    27JAN92
  13422.         PRODUCT:    Network C for Windows
  13423. PRODUCT VERSION:    1.22
  13424.      SUPERSEDES:    NA
  13425.  
  13426.        SYMPTOM:    NA
  13427.  
  13428.  
  13429. ISSUE/PROBLEM
  13430.  
  13431.     When calling LoginToFileServer() which uses the NWCONN.DLL for the Windows SDK, a developer can specify a password for the user he is trying to login as.  However, the developer MUST specify the password all in UPPER CASE.  If not, a 255 error will be the return code from LoginToFileServer().
  13432.  
  13433. SOLUTION
  13434.  
  13435.     NA
  13436.  
  13437.  
  13438.  
  13439.  
  13440. FYI:    No Warm Boot Warning On AST 386
  13441.                                      FYI
  13442.  
  13443. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13444.  
  13445.           TITLE:    No Warm Boot Warning On AST 386
  13446.    DOCUMENT ID#:    FYI.P.5846
  13447.            DATE:    24JAN92
  13448.         PRODUCT:    NetWare Lite
  13449. PRODUCT VERSION:    v1.0
  13450.      SUPERSEDES:    NA
  13451.  
  13452.         SYMPTOM:    No Warm Boot Warning On AST 386
  13453.  
  13454. ISSUE/PROBLEM
  13455.  
  13456.     The warning message was not being presented on the screen of the AST 386sx/20 machine booted as both client and server when CNTL ALT DEL was pressed.
  13457.  
  13458. SOLUTION
  13459.  
  13460.     The ASTEMM.SYS memory manager has a parameter called NOXRAM=ON that had been engaged in the CONFIG.SYS.  When that was removed the NetWare Lite warning message was able to function normally.  This parameter was described as enabling usage of memory in continuous blocks.  The consequences of disabling this parameter are unclear but seem minor in this case.
  13461.  
  13462.     I discussed this with AST and they told me that a BIOS upgrade should fix this problem also. Another note, I guess the early AST machines didn't do their shadowing in place. NOXRAM = ON forces the shadowing to be performed in place. So the consequences are that if you shadow in place you will help eliminate some software incompatibilities that appear when you don't shadow in place.
  13463.  
  13464.  
  13465.  
  13466.  
  13467. FYI:    "System Was Unable To Load Overlay File"
  13468.                                      FYI
  13469.  
  13470. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13471.  
  13472.           TITLE:    "System Was Unable To Load Overlay File"
  13473.    DOCUMENT ID#:    FYI.P.5321
  13474.            DATE:    24JAN92
  13475.         PRODUCT:    NetWare
  13476. PRODUCT VERSION:    v3.11
  13477.      SUPERSEDES:    NA
  13478.  
  13479.         SYMPTOM:    NA
  13480.  
  13481. ISSUE/PROBLEM
  13482.  
  13483.     Getting this error when trying to run any utilities.
  13484.  
  13485. SOLUTION
  13486.  
  13487.     The customer was changing his short machine name to 110.  We had him change it to IBM and everything is great.
  13488.  
  13489.  
  13490.  
  13491.  
  13492. FYI:    "Binderies Have Already Been Restored"
  13493.                                      FYI
  13494.  
  13495. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13496.  
  13497.           TITLE:    "Binderies Have Already Been Restored"
  13498.    DOCUMENT ID#:    FYI.P.5307
  13499.            DATE:    23JAN92
  13500.         PRODUCT:    NetWare
  13501. PRODUCT VERSION:    v3.11
  13502.      SUPERSEDES:    NA
  13503.  
  13504.         SYMPTOM:    Getting error "Binderies have already been restored" when running Upgrade.
  13505.  
  13506. ISSUE/PROBLEM
  13507.  
  13508.     A customer used upgrade to copy an existing NetWare v2.2 file servers' binderies to a trial v3.11 fs to see if the client liked v3.11.  During the trial period the client deleted and changed the bindery objects around using syscon.  Then the client wanted the v2.2 file server fully transferred to the v3.11 file server.  But when they tried to transfer the binderies again using Upgrade they would see the above error.
  13509.  
  13510. SOLUTION
  13511.  
  13512.     Upgrade creates a file in the sys:system directory called upgr$000.bmf to track the upgrade procedure.  Renaming this file allowed them to re-transfer the v2.2 binderies using upgrade.
  13513.  
  13514.  
  13515.  
  13516.  
  13517. FYI:     Patch311 Functions Documentation
  13518.                                      FYI
  13519.  
  13520. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13521.  
  13522.           TITLE:    Patch311 Functions Documentation
  13523.    DOCUMENT ID#:    FYI.A.3829
  13524.            DATE:    23JAN92
  13525.         PRODUCT:    Network C for NLMs
  13526. PRODUCT VERSION:    SDKb
  13527.      SUPERSEDES:    NA
  13528.  
  13529.        SYMPTOM:    NA
  13530.  
  13531.  
  13532. ISSUE/PROBLEM
  13533.  
  13534.     In Network C for NLMs SDK v2.0b documentation updates, it mentions that PATCH311.NLM's new functions are documented in chapter 38 of the NLM Library Reference, Volume II.  However, these functions are not in that chapter.
  13535.  
  13536. SOLUTION
  13537.  
  13538.     PATCH311.NLM's new functions are documented in "Network C For NLMs SDK V2.0 (b) Documentation Updates."
  13539.  
  13540.  
  13541.  
  13542.  
  13543. FYI:     SPXEstablishConnection Trashes Stack
  13544.                                      FYI
  13545.  
  13546. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13547.  
  13548.           TITLE:    SPXEstablishConnection Trashes Stack
  13549.    DOCUMENT ID#:    FYI.A.3828
  13550.            DATE:    23JAN92
  13551.         PRODUCT:    NetWare System Calls
  13552. PRODUCT VERSION:    1.0
  13553.      SUPERSEDES:    NA
  13554.  
  13555.        SYMPTOM:    NA
  13556.  
  13557.  
  13558. ISSUE/PROBLEM
  13559.  
  13560.     A call to SPXEstablishConnection() through system calls trashes some of the variables on the stack.
  13561.  
  13562. SOLUTION
  13563.  
  13564.     SPXEstablishConnection() uses the bp register for its use.  Therfore, make sure to push this register before calling this function, and then pop it after the call.  The documentation does not mention this.
  13565.  
  13566.  
  13567.  
  13568.  
  13569. FYI:     Small Memory Model Applications Accessing Local Btrieve Files.
  13570.                                      FYI
  13571.  
  13572. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13573.  
  13574.           TITLE:    Small Memory Model Applications Accessing Local Btrieve Files.
  13575.    DOCUMENT ID#:    FYI.A.2107
  13576.            DATE:    22JAN92
  13577.         PRODUCT:    Btrieve for Windows
  13578. PRODUCT VERSION:    5.10
  13579.      SUPERSEDES:    NA
  13580.  
  13581.        SYMPTOM:    NA
  13582.  
  13583.  
  13584. ISSUE/PROBLEM
  13585.  
  13586.     When running a Btrieve Windows application utilizing both the requester and local DLLs, after accessing local files, any subsequent Btrieve operation to files that reside on the server will cause the local DLL to be used.
  13587.  
  13588.     This can be verified using the VERSION command in BTRTOOLS.  Before executing the Btrieve Windows application, execute the VERSION command; it should show both the local and requester DLL versions.  Once the application accesses a local file, suspend the application and load BTRTOOLS and execute the VERSION command again.  The local DLL version will be the only version shown if the problem is occurring.
  13589.  
  13590.     Although this problem is difficult to detect, it will usually show up in a situation where another DOS application is trying to access the same file on the server that the Btrieve Windows application is trying to access and one of the applications is getting a status 85 or status 94.
  13591.  
  13592. SOLUTION
  13593.  
  13594.     The problem is with the local Btrieve for Windows DLL and it will only surface when the Btrieve Windows application is compiled with the Small Memory Model (i.e. applications written in MicroSoft Visual Basic).  As you can easily determine, the problem is not reproducible with BTRTOOLS.  This problem can be fixed by running DEBUG on the local DLL and paging down until you see the name WBTRCALL on the right.  Simply edit the bytes on that line and change this to read WBTRLOCL.  However, once this local DLL is modified, it cannot be used unless it is used for both local file and server file access in combination with the requester DLL.
  13595.  
  13596.  
  13597.  
  13598.  
  13599. FYI:     Standard Mode IPX/SPX
  13600.                                      FYI
  13601.  
  13602. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13603.  
  13604.           TITLE:    Standard Mode IPX/SPX
  13605.    DOCUMENT ID#:    FYI.A.2651
  13606.            DATE:    20JAN92
  13607.         PRODUCT:    Network C for Windows
  13608. PRODUCT VERSION:    1.22
  13609.      SUPERSEDES:    NA
  13610.  
  13611.        SYMPTOM:    NA
  13612.  
  13613.  
  13614. ISSUE/PROBLEM
  13615.  
  13616.     There is a problem using IPX/SPX calls in Standard Mode for Windows.  A Windows Timer is being used for call back processes that are used to simulate TBMI/TASKID communications.  The Timer is not killed during the tear down of an SPX connection, thus resulting in a UAE in some cases.  It depends on how timely the call back is.  What that means is that for some applications, this will not pose a problem in that the Deinit API used to kill any resources will successfully kill everything.  Other times the call back may occur following the Deinit...and thus resulting in a UAE.
  13617.  
  13618. SOLUTION
  13619.  
  13620.     If this occurs in Standard mode, NWIPXSPX.DLL should be loaded explicitly. This will not let Windows unload the DLL when all applications are finished using it.
  13621.  
  13622.  
  13623.  
  13624.  
  13625. FYI:     SpecifyCaptureFile and error 152
  13626.                                      FYI
  13627.  
  13628. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13629.  
  13630.           TITLE:    SpecifyCaptureFile and error 152
  13631.    DOCUMENT ID#:    FYI.A.2650
  13632.            DATE:    20JAN92
  13633.         PRODUCT:    NetWare C Interface DOS
  13634. PRODUCT VERSION:    1.2
  13635.      SUPERSEDES:    NA
  13636.  
  13637.        SYMPTOM:    NA
  13638.  
  13639.  
  13640. ISSUE/PROBLEM
  13641.  
  13642.     The SpecifyCaptureFile is returning error 152 for any path specified.  All variations of the path were tried, with and without the server name, different '\' or '/', etc.  Nothing altered the outcome.
  13643.  
  13644. SOLUTION
  13645.  
  13646.     NA
  13647.  
  13648.  
  13649.  
  13650.  
  13651. FYI:     AIO Drivers
  13652.                                      FYI
  13653.  
  13654. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13655.  
  13656.           TITLE:    AIO Drivers
  13657.    DOCUMENT ID#:    FYI.A.4110
  13658.            DATE:    17JAN92
  13659.         PRODUCT:    Network C for NLMs
  13660. PRODUCT VERSION:    1.0
  13661.      SUPERSEDES:    NA
  13662.  
  13663.        SYMPTOM:    NA
  13664.  
  13665.  
  13666. ISSUE/PROBLEM
  13667.  
  13668.     The AIOWNIM driver that went out with SDKB will reboot the server occasionally when loaded.  There is no work around for this.
  13669.  
  13670. SOLUTION
  13671.  
  13672.     There are a new set of drivers that have been put up on CompuServe under NOVLIB.  The name of the file is AIO.ZIP.
  13673.  
  13674.  
  13675.  
  13676.  
  13677. FYI:     AIO WNIM Driver
  13678.                                      FYI
  13679.  
  13680. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13681.  
  13682.           TITLE:    AIO WNIM Driver
  13683.    DOCUMENT ID#:    FYI.A.4109
  13684.            DATE:    17JAN92
  13685.         PRODUCT:    Network C for NLMs
  13686. PRODUCT VERSION:    1.0
  13687.      SUPERSEDES:    NA
  13688.  
  13689.        SYMPTOM:    NA
  13690.  
  13691.  
  13692. ISSUE/PROBLEM
  13693.  
  13694.     When you try to load the AIOWNIM driver with Mem = 0D000H, the server sometimes abends or even reboots.
  13695.  
  13696. SOLUTION
  13697.  
  13698.     Try loading the driver with Mem = 0D0000H.  This seems to be a problem with NetWare 3.11 which requires a 32 bit address.
  13699.  
  13700.  
  13701.  
  13702.  
  13703. FYI:     Unrecognized Externals At Link Time
  13704.                                      FYI
  13705.  
  13706. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13707.  
  13708.           TITLE:    Unrecognized Externals At Link Time
  13709.    DOCUMENT ID#:    FYI.A.3353
  13710.            DATE:    17JAN92
  13711.         PRODUCT:    Network C for NLMs
  13712. PRODUCT VERSION:    20b
  13713.      SUPERSEDES:    NA
  13714.  
  13715.        SYMPTOM:    NA
  13716.  
  13717.  
  13718. ISSUE/PROBLEM
  13719.  
  13720.     After loading Patch311 and using two new functions documented in the patch documentation the developer receives "unrecognized externals" at link time. The names of the two functions are RenameThread and GetThreadName.
  13721.  
  13722. SOLUTION
  13723.  
  13724.     Define the two functions as imports either when you link your NLM or in the CLIB.IMP file.  The recommended procedure is to import the functions into your own NLM.
  13725.  
  13726.  
  13727.  
  13728.  
  13729. FYI:     Watcom Patch Requires Definition of _argc
  13730.                                      FYI
  13731.  
  13732. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13733.  
  13734.           TITLE:    Watcom Patch Requires Definition of _argc
  13735.    DOCUMENT ID#:    FYI.A.3352
  13736.            DATE:    15JAN92
  13737.         PRODUCT:    Network C for NLMs
  13738. PRODUCT VERSION:    2.0b
  13739.      SUPERSEDES:    NA
  13740.  
  13741.        SYMPTOM:    Unrecognized external _argc received at link time.
  13742.  
  13743.  
  13744. ISSUE/PROBLEM
  13745.  
  13746.     Watcom changed the way they were handling the _argc parameter between patch levels C & D of the Watcom 8.5 compiler.
  13747.  
  13748. SOLUTION
  13749.  
  13750.     Define argc as a global variable.
  13751.  
  13752.       Example:
  13753.          int   _argc;
  13754.  
  13755.  
  13756.  
  13757.  
  13758. FYI:     Using the Version Option and the Copyright Option
  13759.                                      FYI
  13760.  
  13761. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13762.  
  13763.           TITLE:    Using the Version Option and the Copyright Option
  13764.    DOCUMENT ID#:    FYI.A.2932
  13765.            DATE:    15JAN92
  13766.         PRODUCT:    Network C for NLMs
  13767. PRODUCT VERSION:    2.00
  13768.      SUPERSEDES:    NA
  13769.  
  13770.        SYMPTOM:    NA
  13771.  
  13772.  
  13773. ISSUE/PROBLEM
  13774.  
  13775.     Both the WATCOM help page and the Novell/WATCOM linker documentation are slightly incorrect.
  13776.  
  13777.      1)    Page 3-3 of the Linker User's Manual states that both COPYRIGHT and VERSION are directives as compared to options.
  13778.  
  13779.      2)    Page 3-7 also repeats this, and indicates the use of double quotes.
  13780.  
  13781.      3)    Page 3-31 also repeats that VERSION is a directive.  It would seem that this is NOT so.
  13782.  
  13783.      4)    The help information from WLINK indicates that the VERsion 'VER' short form can be used; this does not seem to be the case.
  13784.  
  13785.     The correct way to use the VERSION AND THE COPYRIGHT OPTIONS are:
  13786.  
  13787.     OPTION VERSION=2.10
  13788.  
  13789.     OPTION COPYRIGHT 'My Copyright Information'
  13790.  
  13791. SOLUTION
  13792.  
  13793.     NA
  13794.  
  13795.  
  13796.  
  13797.  
  13798. FYI:     Accessing a File on a Remote Server from an NLM
  13799.                                      FYI
  13800.  
  13801. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13802.  
  13803.           TITLE:    Accessing a File on a Remote Server from an NLM
  13804.    DOCUMENT ID#:    FYI.A.2931
  13805.            DATE:    15JAN92
  13806.         PRODUCT:    Network C for NLMs
  13807. PRODUCT VERSION:    2.00
  13808.      SUPERSEDES:    NA
  13809.  
  13810.        SYMPTOM:    NA
  13811.  
  13812.  
  13813. ISSUE/PROBLEM
  13814.  
  13815.     When a developer loads his NLM on a host server, his NLM will automatically get assigned to connection zero (no restrictions).  If an NLM needs to connect to a remote file server, the NLM must log in as a bindery object. An NLM will not be allowed to have connection zero on the remote server since it will be a security hazard.
  13816.  
  13817. SOLUTION
  13818.  
  13819.     NA
  13820.  
  13821.  
  13822.  
  13823.  
  13824. FYI:     Sending Broadcast Message From Non-dedicated Servers
  13825.                                      FYI
  13826.  
  13827. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13828.  
  13829.           TITLE:    Sending Broadcast Message From Non-dedicated Servers
  13830.    DOCUMENT ID#:    FYI.A.3827
  13831.            DATE:    14JAN92
  13832.         PRODUCT:    NetWare C Interface DOS
  13833. PRODUCT VERSION:    1.2
  13834.      SUPERSEDES:    NA
  13835.  
  13836.        SYMPTOM:    NA
  13837.  
  13838.  
  13839. ISSUE/PROBLEM
  13840.  
  13841.     Broadcast messages from an IPX application running on a non-dedicated 2.x server was not working.  It works fine if it is running from a workstation.
  13842.  
  13843. SOLUTION
  13844.  
  13845.     Non-dedicated servers have their own logical LAN E.  So when the application was broadcasting, it was sending messages to the nodes through LAN E and not LAN A.  There are no nodes connected to LAN E.  Therefore, the application has to read the network address of the non-dedicated server from the bindery, and put that address in the network field of IPXHeader.  The network address can be read through the ReadPropertyValue() and the property would be NET_ADDRESS of the non-dedicated server.
  13846.  
  13847.     The reason that application was working fine from a workstation was because it was broadcasting through LAN A.
  13848.  
  13849.  
  13850.  
  13851.  
  13852. FYI:     Registering the File Size While the File is Open
  13853.                                      FYI
  13854.  
  13855. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13856.  
  13857.           TITLE:    Registering the File Size While the File is Open
  13858.    DOCUMENT ID#:    FYI.A.2930
  13859.            DATE:    14JAN92
  13860.         PRODUCT:    Network C for NLMs
  13861. PRODUCT VERSION:    2.00
  13862.      SUPERSEDES:    NA
  13863.  
  13864.        SYMPTOM:    NA
  13865.  
  13866.  
  13867. ISSUE/PROBLEM
  13868.  
  13869.     NetWare will not update a file size after each write to the file.  The file size will be updated after the file is closed.  You can tell NetWare to update the file size while the file is in an open mode.  You will need to call the DosCommit function (16h) and pass it the file handle in the BX register. This will update the file size.  The above will only work when using NetWare 3.11 and 3.22 shell (NETX).
  13870.  
  13871. SOLUTION
  13872.  
  13873.     NA
  13874.  
  13875.  
  13876.  
  13877.  
  13878. FYI:     Console is Unlocked by NLM
  13879.                                      FYI
  13880.  
  13881. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13882.  
  13883.           TITLE:    Console is Unlocked by NLM
  13884.    DOCUMENT ID#:    FYI.A.3137
  13885.            DATE:    13JAN92
  13886.         PRODUCT:    Network C for NLMs
  13887. PRODUCT VERSION:    SDKb
  13888.      SUPERSEDES:    NA
  13889.  
  13890.        SYMPTOM:    NA
  13891.  
  13892.  
  13893. ISSUE/PROBLEM
  13894.  
  13895.     If an NLM exits on its own while the file server console is locked with the MONITOR NLM, the MONITOR screen is destroyed and the console is unlocked.
  13896.  
  13897. SOLUTION
  13898.  
  13899.     NA
  13900.  
  13901.  
  13902.  
  13903.  
  13904. FYI:     Read from Address 8 During Shutdown
  13905.                                      FYI
  13906.  
  13907. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13908.  
  13909.           TITLE:    Read from Address 8 During Shutdown
  13910.    DOCUMENT ID#:    FYI.A.3136
  13911.            DATE:    13JAN92
  13912.         PRODUCT:    Network C for NLMs
  13913. PRODUCT VERSION:    SDKb
  13914.      SUPERSEDES:    NA
  13915.  
  13916.        SYMPTOM:    NA
  13917.  
  13918.  
  13919. ISSUE/PROBLEM
  13920.  
  13921.     If an NLM exits due to control C being hit, a read from address 8 will be performed.  If the BREAK0 NLM is loaded, the Internal Debugger will be entered.
  13922.  
  13923. SOLUTION
  13924.  
  13925.     You can just type 'g' <ENTER>, and ignore the read.  No side effects will occur.
  13926.  
  13927.  
  13928.  
  13929.  
  13930. FYI:     Redefining an Imported Symbol and WLINK
  13931.                                      FYI
  13932.  
  13933. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13934.  
  13935.           TITLE:    Redefining an Imported Symbol and WLINK
  13936.    DOCUMENT ID#:    FYI.A.3135
  13937.            DATE:    13JAN92
  13938.         PRODUCT:    Network C for NLMs
  13939. PRODUCT VERSION:    SDKb
  13940.      SUPERSEDES:    FYI.A.3134
  13941.  
  13942.        SYMPTOM:    NA
  13943.  
  13944.  
  13945. ISSUE/PROBLEM
  13946.  
  13947.     The problem where WLINK always resolves symbols with anything imported, even if you have the symbol defined in one of your OBJs, has been fixed by WATCOM.
  13948.  
  13949. SOLUTION
  13950.  
  13951.     Download Patch Level E, C386_E.ZIP, from WATCOM's bulletin board.
  13952.  
  13953.  
  13954.  
  13955.  
  13956. FYI:     Queue Job Names & NetWare 2.x & 3.x
  13957.                                      FYI
  13958.  
  13959. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13960.  
  13961.           TITLE:    Queue Job Names & NetWare 2.x & 3.x
  13962.    DOCUMENT ID#:    FYI.A.2649
  13963.            DATE:    09JAN92
  13964.         PRODUCT:    Network C for Windows
  13965. PRODUCT VERSION:    1.2
  13966.      SUPERSEDES:    N/A
  13967.  
  13968.        SYMPTOM:    N/A
  13969.  
  13970.  
  13971. ISSUE/PROBLEM
  13972.  
  13973.             NetWare 386:
  13974.     Queue directory is: Queue_ID.QDR (as in bindery ID)
  13975.  
  13976.      Each Job entry is:
  13977.             The first 4 characters are 2 hex values for the Queue ID, but are swapped.
  13978.             The next 4 characters represent the job number (right justified) and with the extension '.Q'.
  13979.  
  13980.       Example:    Queue id = 08010015
  13981.                   Directory is 08010015.QDR
  13982.                   Jobs are in this directory with names:
  13983.                   01080001.Q  01080002.Q....etc
  13984.  
  13985. SOLUTION
  13986.  
  13987.     N/A
  13988.  
  13989.  
  13990.  
  13991.  
  13992. FYI:     GetConnectionID Documentation Error
  13993.                                      FYI
  13994.  
  13995. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  13996.  
  13997.           TITLE:    GetConnectionID Documentation Error
  13998.    DOCUMENT ID#:    FYI.A.2648
  13999.            DATE:    09JAN92
  14000.         PRODUCT:    Network C for Windows
  14001. PRODUCT VERSION:    1.22
  14002.      SUPERSEDES:    NA
  14003.  
  14004.        SYMPTOM:    NA
  14005.  
  14006.  
  14007. ISSUE/PROBLEM
  14008.  
  14009.     A minor documentation error exists for the GetConnectionID API for both the C Interface for DOS and C Interface for Windows.  The return code 248 represents NOT_ATTACHED_TO_SERVER, whereas the documentation states that it is ALREADY_ATTACHED_TO_SERVER.
  14010.  
  14011. SOLUTION
  14012.  
  14013.     NA
  14014.  
  14015.  
  14016.  
  14017.  
  14018. FYI:     ChangeQueueJobEntry() Return Codes
  14019.                                      FYI
  14020.  
  14021. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14022.  
  14023.           TITLE:    ChangeQueueJobEntry() Return Codes
  14024.    DOCUMENT ID#:    FYI.A.1644
  14025.            DATE:    09JAN92
  14026.         PRODUCT:    NetWare C Interface DOS
  14027. PRODUCT VERSION:    1.2
  14028.      SUPERSEDES:    NA
  14029.  
  14030.        SYMPTOM:    NA
  14031.  
  14032.  
  14033. ISSUE/PROBLEM
  14034.  
  14035.     ChangeQueueJobEntry() does not return 0xD7 (Q_SERVICING) when the job entry being modified is being serviced.  Instead, it returns 0x00.
  14036.  
  14037. SOLUTION
  14038.  
  14039.     Just remember that a job's status cannot be changed while the job is being serviced.
  14040.  
  14041.  
  14042.  
  14043.  
  14044. FYI:     Status 19 and GetNextExtended
  14045.                                      FYI
  14046.  
  14047. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14048.  
  14049.           TITLE:    Status 19 and GetNextExtended
  14050.    DOCUMENT ID#:    FYI.A.3351
  14051.            DATE:    08JAN92
  14052.         PRODUCT:    NetWare Btrieve NLM
  14053. PRODUCT VERSION:    5.15
  14054.      SUPERSEDES:    NA
  14055.  
  14056.        SYMPTOM:    Status 19
  14057.  
  14058.  
  14059. ISSUE/PROBLEM
  14060.  
  14061.     If a developer issues a GetNextExtended (Operation 36) after a key-only GetGreaterThanOrEqual (operation 59) Btrieve returns a status 19.
  14062.  
  14063. SOLUTION
  14064.  
  14065.     Currently the only work-around is to use a GetGreaterThanOrEqual without the key-only bias.
  14066.  
  14067.  
  14068.  
  14069.  
  14070. FYI:     CLIB Documentation Error
  14071.                                      FYI
  14072.  
  14073. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14074.  
  14075.           TITLE:    CLIB Documentation Error
  14076.    DOCUMENT ID#:    FYI.A.2929
  14077.            DATE:    08JAN92
  14078.         PRODUCT:    Network C for NLMs
  14079. PRODUCT VERSION:    SDK 2.00b
  14080.      SUPERSEDES:    NA
  14081.  
  14082.        SYMPTOM:    NA
  14083.  
  14084.  
  14085. ISSUE/PROBLEM
  14086.  
  14087.     There is documentation error in the NLM SDK 2.00(B).  Page 22-36 of VOLUME II in the manual mentions the ScanFileInformation() function.  This function does not exist; you will need to use the stat() or the readdir() functions instead to get the file information.
  14088.  
  14089. SOLUTION
  14090.  
  14091.     NA
  14092.  
  14093.  
  14094.  
  14095.  
  14096. FYI:     When SynchronizeStart() must be Called
  14097.                                      FYI
  14098.  
  14099. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14100.  
  14101.           TITLE:    When SynchronizeStart() must be Called
  14102.    DOCUMENT ID#:    FYI.A.2928
  14103.            DATE:    08JAN92
  14104.         PRODUCT:    Network C for NLMs
  14105. PRODUCT VERSION:    2.00
  14106.      SUPERSEDES:    NA
  14107.  
  14108.        SYMPTOM:    NA
  14109.  
  14110.  
  14111. ISSUE/PROBLEM
  14112.  
  14113.     If you use the SYNCHRONIZE OPTION, YOU MUST call the SynchronizeStart() function as soon as possible in your code, otherwise the console command process will not load and you will not be able to enter any command on the file server.  The only thing that you will be allowed to do is switch between screens.  This function is only supported under NetWare 3.11.
  14114.  
  14115. SOLUTION
  14116.  
  14117.     NA
  14118.  
  14119.  
  14120.  
  14121.  
  14122. FYI:     Windows SDK & IPXGetInternetworkAddress
  14123.                                      FYI
  14124.  
  14125. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14126.  
  14127.           TITLE:    Windows SDK & IPXGetInternetworkAddress
  14128.    DOCUMENT ID#:    FYI.A.2647
  14129.            DATE:    08JAN92
  14130.         PRODUCT:    Network C for Windows
  14131. PRODUCT VERSION:    1.22
  14132.      SUPERSEDES:    NA
  14133.  
  14134.        SYMPTOM:    NA
  14135.  
  14136.  
  14137. ISSUE/PROBLEM
  14138.  
  14139.     The IPXGetinternetworkAddress returns garbage when IPX/SPX is initialized with 0 maxECB's (meaning that the application will deal with controlling its ECB's directly - not relaying the NWIPXSPX.DLL & optionally VIPX.386).  It works fine if the IPX/SPX initialize was carried out with any number of maxECB's other than 0.
  14140.  
  14141. SOLUTION
  14142.  
  14143.     There is no workaround at this time.
  14144.  
  14145.  
  14146.  
  14147.  
  14148. FYI:     Windows SDK & GetServerAddressTable
  14149.                                      FYI
  14150.  
  14151. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14152.  
  14153.           TITLE:    Windows SDK & GetServerAddressTable
  14154.    DOCUMENT ID#:    FYI.A.2646
  14155.            DATE:    08JAN92
  14156.         PRODUCT:    Network C for Windows
  14157. PRODUCT VERSION:    1.22
  14158.      SUPERSEDES:    NA
  14159.  
  14160.        SYMPTOM:    NA
  14161.  
  14162.  
  14163. ISSUE/PROBLEM
  14164.  
  14165.     The GetServerAddressTable API in the diagnostic services returns the table with most of it NULLed out.
  14166.  
  14167. SOLUTION
  14168.  
  14169.     There is no workaround at this time.
  14170.  
  14171.  
  14172.  
  14173.  
  14174. FYI:    "Error Receiving From Network" PRINTCON.EXE
  14175.                                      FYI
  14176.  
  14177. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14178.  
  14179.           TITLE:    "Error Receiving From Network" PRINTCON.EXE
  14180.    DOCUMENT ID#:    FYI.P.5127
  14181.            DATE:    07JAN92
  14182.         PRODUCT:    NetWare
  14183. PRODUCT VERSION:    v2.2
  14184.      SUPERSEDES:    NA
  14185.  
  14186.         SYMPTOM:    Executing PRINTCON.EXE and two other 3rd party applications resulted in the error "Error receiving from Network".
  14187.  
  14188. ISSUE/PROBLEM
  14189.  
  14190.     Configuration:  Ethernet twisted pair, Synoptics Concentrator
  14191.  
  14192.     Only these 3 applications would see the problem. All other NetWare Utilities ran fine as did other applications. There were no random occurrences of the error message. It only happened upon executing these files.
  14193.  
  14194.     After checking for obvious lan problems, we looked into file corruption, viruses, bindery problems, regenned the OS etc.  All to no avail. Finally we returned to the lan hardware.
  14195.  
  14196. SOLUTION
  14197.  
  14198.     The customer was using Ethernet twisted pair. The Synoptics concentrator had a bad connection. Regardless of whether the connection was cabled to a node or not, the error would occur if there was a cable plugged into it. Works great as long as he doesn't plug a cable into this connection.
  14199.  
  14200.  
  14201.  
  14202.  
  14203. FYI:     Synchronization in NetWare Name Service
  14204.                                      FYI
  14205.  
  14206. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14207.  
  14208.           TITLE:    Synchronization in NetWare Name Service
  14209.    DOCUMENT ID#:    FYI.A.3826
  14210.            DATE:    07JAN92
  14211.         PRODUCT:    NetWare C Interface DOS
  14212. PRODUCT VERSION:    1.2
  14213.      SUPERSEDES:    NA
  14214.  
  14215.        SYMPTOM:    NA
  14216.  
  14217.  
  14218. ISSUE/PROBLEM
  14219.  
  14220.     In NetWare Name Service, if a user is modified on one server in the domain, this change is supposed to be replicated on every server throughout the domain, synchronizing the Name Service database.  However, sometimes it does not.
  14221.  
  14222. SOLUTION
  14223.  
  14224.     The servers in a domain are synchronized if the users, profiles and their properties are the same on all servers in the domain.  Also if a server in the domain is down while changes are made on the other servers, the domain is unsynchronized when the server is brought back up.  In that case, NETCON can be used to resynchronize the domain.
  14225.  
  14226.  
  14227.  
  14228.  
  14229. FYI:     NETCON vs. SYSCON
  14230.                                      FYI
  14231.  
  14232. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14233.  
  14234.           TITLE:    NETCON vs. SYSCON
  14235.    DOCUMENT ID#:    FYI.A.3825
  14236.            DATE:    07JAN92
  14237.         PRODUCT:    NetWare C Interface DOS
  14238. PRODUCT VERSION:    1.2
  14239.      SUPERSEDES:    NA
  14240.  
  14241.        SYMPTOM:    NA
  14242.  
  14243.  
  14244. ISSUE/PROBLEM
  14245.  
  14246.     Password for a newly created user through SYSCON was not being synchronized in NetWare Name Service.
  14247.  
  14248. SOLUTION
  14249.  
  14250.     If you are using NetWare Name Service, do not use SYSCON.  Instead, use NETCON (NETwork CONfiguration).  NETCON is a utility that comes with NetWare Name Service.  NETCON contains the same functionality as SYSCON plus additional functionality for controlling and synchronizing Name Service domains and profiles.
  14251.  
  14252.  
  14253.  
  14254.  
  14255. FYI:    Changing Network Number, NetWare For VMS
  14256.                                      FYI
  14257.  
  14258. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14259.  
  14260.           TITLE:    Changing Network Number, NetWare For VMS
  14261.    DOCUMENT ID#:    FYI.P.5118
  14262.            DATE:    06JAN92
  14263.         PRODUCT:    NetWare for VMS
  14264. PRODUCT VERSION:    v2.1
  14265.      SUPERSEDES:    NA
  14266.  
  14267.         SYMPTOM:    NA
  14268.  
  14269. ISSUE/PROBLEM
  14270.  
  14271.     A customer wanted to change their network number without reinstalling NetWare.
  14272.  
  14273. SOLUTION
  14274.  
  14275.     In the NWVMS$SPECIFIC directory, edit the files NW_DEF_CONFIG.COM (look for an entry labeled def_network_number) and NW_LOAD_DRV.COM (look for an entry labeled /network).  Each of these two entries has a number within quotations that is the network number.
  14276.  
  14277.     The file NW_DEF_CONFIG.COM is actually just a record of the configuration you selected when you installed NetWare for VMS.  It does not affect the operation of NetWare for VMS.  When you changed the network address, the only file that really need to be changed is NW_LOAD_DRV.COM.  Of course, you would want to change NW_DEF_CONFIG.COM to maintain an accurate record of the configuration of your server for future upgrade.  One more thing, after you change the file NW_LOAD_DRV.COM, you will need to reload the QX (???) driver which might involve the rebooting of the VAX.
  14278.  
  14279.  
  14280.  
  14281.  
  14282. FYI:    Preferred Server Timeout Patch In SHELL.CFG
  14283.                                      FYI
  14284.  
  14285. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14286.  
  14287.           TITLE:    Preferred Server Timeout Patch In SHELL.CFG
  14288.    DOCUMENT ID#:    FYI.P.5109
  14289.            DATE:    06JAN92
  14290.         PRODUCT:    NetWare
  14291. PRODUCT VERSION:    v3.11, v2.2
  14292.      SUPERSEDES:    NA
  14293.  
  14294.         SYMPTOM:    NA
  14295.  
  14296. ISSUE/PROBLEM
  14297.  
  14298.     In this situation a client had a preferred server specified in his SHELL.CFG.  He would have to run NETX 4 times before it would get a connection.  The three other attempts would yield: "Unknown file server."
  14299.  
  14300. SOLUTION
  14301.  
  14302.     Applied this patch.  In the SHELL.CFG they put:
  14303.  
  14304.         patch = 58933, 131
  14305.         patch = 58934, 193
  14306.         patch = 58935, 10
  14307.  
  14308.     Now they only had to run NETX 2 times to get a connection.  We figured since it improved the number of attempts we would try changing the '10' in the patch to a '20' indicating a longer tic buffer zone.  It worked.
  14309.  
  14310.  
  14311.  
  14312.  
  14313. FYI:    "File Server Not Found" Binding IPX In AUTOEXEC.NCF
  14314.                                      FYI
  14315.  
  14316. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14317.  
  14318.           TITLE:    "File Server Not Found" Binding IPX In AUTOEXEC.NCF
  14319.    DOCUMENT ID#:    FYI.P.5101
  14320.            DATE:    06JAN92
  14321.         PRODUCT:    NetWare
  14322. PRODUCT VERSION:    v3.11
  14323.      SUPERSEDES:    NA
  14324.  
  14325.         SYMPTOM:    Getting "A file server could not be found".
  14326.  
  14327. ISSUE/PROBLEM
  14328.  
  14329.     Customer was installing this big 10BaseT system with NetWare v3.11. They said they had five other systems just like this and they all worked except this one (Only difference from the others, this one was a 10 user version). Tried Comcheck and it worked great on server and workstation so cabling and concentrator was fine. After going through all the options we ran out.
  14330.  
  14331. SOLUTION
  14332.  
  14333.     After all the problems, it boiled down that the customer did not have the IPX bound in the AUTOEXEC.NCF. After binding, the workstation came up fine.
  14334.  
  14335.     When getting "A File Server could not be found" error in NetWare v3.1x, the first thing you should do is CONFIG at the file server.  CONFIG will tell you if IPX has been bound to the lan card or not.
  14336.  
  14337.  
  14338.  
  14339.  
  14340. FYI:     Print Services Specifications
  14341.                                      FYI
  14342.  
  14343. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14344.  
  14345.           TITLE:    Print Services Specifications
  14346.    DOCUMENT ID#:    FYI.A.4108
  14347.            DATE:    06JAN92
  14348.         PRODUCT:    NetWare C Interface DOS
  14349. PRODUCT VERSION:    1.2
  14350.      SUPERSEDES:    NA
  14351.         SYMPTOM:    NA
  14352.  
  14353.  
  14354. ISSUE/PROBLEM
  14355.  
  14356.     Following are the specifications for three files that are created by the Print Server.  The files are 1) PRINT.00X  2) QUEUE.00X & 3) NOTIFY.00X. These files are located under the SYS:\SYSTEM\PRINTERSERVERID directory of the Print Server.  The extension depends on the Queue Number in sequence.
  14357.  
  14358.      QUEUE.000
  14359.      ---------
  14360.      struct               /* Queue to be serviced structure */
  14361.      {
  14362.        BYTE  name[48];    /* Name of queue  */
  14363.        BYTE  priority;    /* Priority of this queue */
  14364.      } queue;
  14365.  
  14366.      NOTIFY.000
  14367.      ---------
  14368.      struct               /* Object to be notified structure */
  14369.      {
  14370.        BYTE  name[48];    /* Name of object */
  14371.        WORD  type;        /* Type of object */
  14372.              intial,      /* Time before first notice */
  14373.              repeat;      /* Time between notices */
  14374.      } notify;
  14375.  
  14376.      PRINT.000
  14377.      ---------
  14378.      struct
  14379.      {
  14380.        char  name[48];        /* Name of printer */
  14381.        WORD  printerSubtype,  /* Subtype of printer */
  14382.              useInterrupts,   /* Use interrupts or polling? */
  14383.              irqNumber,       /* IRQ number for printer interrupt */
  14384.              serviceMode,     /* Queue service mode */
  14385.              buffersize,      /* Buffer size in K */
  14386.              baudRate,        /* Baud rate  (Serial only) */
  14387.              dataBits,        /* Data bits  (Serial only) */
  14388.              stopBits,        /* Stop bits  (Serial only) */
  14389.              parity,          /* Parity type (Serial only) */
  14390.              useXonXoff,      /* Use X-On/X-Off protocol? (Serial Only) */
  14391.              currentForm;     /* Currently mounted form */
  14392.      } PCONFIG;
  14393.  
  14394. SOLUTION
  14395.  
  14396.     This information should be distributed to those that require the specifications of these files.
  14397.  
  14398.  
  14399.  
  14400.  
  14401. FYI:     CheckIfScreenDisplayed() Blocks NLM
  14402.                                      FYI
  14403.  
  14404. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14405.  
  14406.           TITLE:    CheckIfScreenDisplayed() Blocks NLM
  14407.    DOCUMENT ID#:    FYI.A.3824
  14408.            DATE:    06JAN92
  14409.         PRODUCT:    Network C for NLMs
  14410. PRODUCT VERSION:    SDK b
  14411.      SUPERSEDES:    NA
  14412.  
  14413.        SYMPTOM:    NA
  14414.  
  14415.  
  14416. ISSUE/PROBLEM
  14417.  
  14418.     If CheckIfScreenDisplayed() is called with the waitFlag TRUE, and then the NLM is unloaded from the command line, a console message appears stating
  14419.  
  14420.      "ThreadID = XXXXX is currently waiting on a screen to be displayed.
  14421.       Please cycle through the screens with Alt-Esc."
  14422.  
  14423.     In other words, all the resources are not being freed when the NLM is unloaded from the command line.
  14424.  
  14425. SOLUTION
  14426.  
  14427.     The NLM will be unloaded when the screens are cycled and the screen on which the thread was waiting becomes the current screen.
  14428.  
  14429.     The other workaround would be to make that screen the current screen in the SIGTERM function.
  14430.  
  14431.  
  14432.  
  14433.  
  14434. FYI:     The Disappearing File Server Console Prompt
  14435.                                      FYI
  14436.  
  14437. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14438.  
  14439.           TITLE:    The Disappearing File Server Console Prompt
  14440.    DOCUMENT ID#:    FYI.A.2927
  14441.            DATE:    06JAN92
  14442.         PRODUCT:    Network C for NLMs
  14443. PRODUCT VERSION:    1.3
  14444.      SUPERSEDES:    NA
  14445.  
  14446.        SYMPTOM:    NA
  14447.  
  14448.  
  14449. ISSUE/PROBLEM
  14450.  
  14451.     If you use the SYNCHRONIZE OPTION in your NLM link file, it will cause your file server screen and all other screens to lose their console prompts. The console prompt will be blank.
  14452.  
  14453. SOLUTION
  14454.  
  14455.     NA
  14456.  
  14457.  
  14458.  
  14459.  
  14460. FYI:     Redefining an Imported Symbol and WLINK
  14461.                                      FYI
  14462.  
  14463. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14464.  
  14465.           TITLE:    Redefining an Imported Symbol and WLINK
  14466.    DOCUMENT ID#:    FYI.A.3134
  14467.            DATE:    03JAN92
  14468.         PRODUCT:    Network C for NLMs
  14469. PRODUCT VERSION:    SDK b
  14470.      SUPERSEDES:    NA
  14471.  
  14472.         SYMPTOM:    NA
  14473.  
  14474.  
  14475. ISSUE/PROBLEM
  14476.  
  14477.     If you redefine any imported symbol in your NLM, WLINK will always resolve any references to that symbol made by your NLM to the imported symbol.  This bug re-appeared in the (b) version of the SDK, as it had been fixed for (a).
  14478.  
  14479. SOLUTION
  14480.  
  14481.     Remove the symbol you wish to redefine from the import file or symbol list, or rename the symbol.
  14482.  
  14483.  
  14484.  
  14485.  
  14486. FYI:     Using WLINK Option CHECK
  14487.                                      FYI
  14488.  
  14489. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14490.  
  14491.           TITLE:    Using WLINK Option CHECK
  14492.    DOCUMENT ID#:    FYI.A.3133
  14493.            DATE:    03JAN92
  14494.         PRODUCT:    Network C for NLMs
  14495. PRODUCT VERSION:    SDK b
  14496.      SUPERSEDES:    NA
  14497.  
  14498.         SYMPTOM:    NA
  14499.  
  14500.  
  14501. ISSUE/PROBLEM
  14502.  
  14503.     If you are using the linker option CHECK with WLINK, and your check function is placed at offset 0 in the code segment, it will NOT be called if your NLM is unloaded.
  14504.  
  14505. SOLUTION
  14506.  
  14507.     Relink your NLM and specify PRELUDE.OBJ as the first object module to be linked.
  14508.  
  14509.  
  14510.  
  14511.  
  14512. FYI:     How to Find Out if your Console is a Color Monitor
  14513.                                      FYI
  14514.  
  14515. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14516.  
  14517.           TITLE:    How to Find Out if your Console is a Color Monitor
  14518.    DOCUMENT ID#:    FYI.A.2926
  14519.            DATE:    03JAN92
  14520.         PRODUCT:    Network C for NLMs
  14521. PRODUCT VERSION:    SDK b
  14522.      SUPERSEDES:    NA
  14523.  
  14524.         SYMPTOM:    NA
  14525.  
  14526.  
  14527. ISSUE/PROBLEM
  14528.  
  14529.     You can find out whether the console or your file server is a color monitor, by calling the IsColorMonitor() function.  This function call is only supported under PATCH311.NLM.  You will need to import the function call in your def or link file.  The function then will be exported to your CLIB.
  14530.  
  14531. SOLUTION
  14532.  
  14533.     NA
  14534.  
  14535.  
  14536.  
  14537.  
  14538. FYI:     HOMEDIRPATH Property
  14539.                                      FYI
  14540.  
  14541. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14542.  
  14543.           TITLE:    HOMEDIRPATH Property
  14544.    DOCUMENT ID#:    FYI.A.1643
  14545.            DATE:    03JAN92
  14546.         PRODUCT:    NetWare System Calls
  14547. PRODUCT VERSION:    1.0
  14548.      SUPERSEDES:    NA
  14549.         SYMPTOM:    NA
  14550.  
  14551.  
  14552. ISSUE/PROBLEM
  14553.  
  14554.     What is in the HOMEDIRPATH property that only the SUPERVISOR user has?
  14555.  
  14556. SOLUTION
  14557.  
  14558.     The HOMEDIRPATH property contains the home directory path!  Specifically, this is a 2 segment property that contains the parent directory under which user subdirectories will be created when creating the user via SYSCON.EXE. The property is 2 segments long so that the path can be larger than 128 bytes (the size of one segment).  The first occurence of an ASCII zero (0x00) indicates the end of the path name (just like in C).  If the second property is not needed, it will contain an ASCII zero in the first byte.  This property is only used by SYSCON.EXE when it belongs to user SUPERVISOR.
  14559.  
  14560.  
  14561.  
  14562.  
  14563. FYI:    No Free Connection Slots Available, Turbo ISADISK
  14564.                                      FYI
  14565.  
  14566. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14567.  
  14568.           TITLE:    No Free Connection Slots Available, Turbo ISADISK
  14569.    DOCUMENT ID#:    FYI.P.5091
  14570.            DATE:    02JAN92
  14571.         PRODUCT:    NetWare
  14572. PRODUCT VERSION:    v2.2
  14573.      SUPERSEDES:    NA
  14574.  
  14575.         SYMPTOM:    Getting "No free connection slots available".
  14576.  
  14577. ISSUE/PROBLEM
  14578.  
  14579.     Had a 50 user version running nondedicated in a 286 box.   After they pulled the controller, drive, and Thomas Conrad NIC out of the 286 and putting them in a 486 ALR POWERFLEX the nondedicated w/s was the only one that could log in. Other w/s would get the above message, regardless of whether the nondedicated w/s was logged in or not.
  14580.  
  14581. SOLUTION
  14582.  
  14583.     Had an option for TURBO ISADISK in the setup of the file server. Disabled this and the w/s were able to get connections to the server.
  14584.  
  14585.  
  14586.  
  14587.  
  14588. FYI:     Forcing NLM's not to Unload...
  14589.                                      FYI
  14590.  
  14591. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14592.  
  14593.           TITLE:    Forcing NLM's not to Unload...
  14594.    DOCUMENT ID#:    FYI.A.2645
  14595.            DATE:    02JAN92
  14596.         PRODUCT:    Network C for NLMs
  14597. PRODUCT VERSION:    SDK b
  14598.      SUPERSEDES:    NA
  14599.  
  14600.         SYMPTOM:    NA
  14601.  
  14602.  
  14603. ISSUE/PROBLEM
  14604.  
  14605.     If you ever wanted to force your NLM not to unload here's a possible approach:
  14606.  
  14607.      1) Specify the CHECK option in your LNK file, giving it a name of a
  14608.         function that will be called on an unload attempt.  A prompt from the
  14609.         loader will expect a 'Y/N' response.  Forcing a 'N' & 'CR' will force
  14610.         the No response and the NLM will not unload.
  14611.  
  14612.             ex: option check=NWNoUnload
  14613.  
  14614.      2) Place the following routine into your code that will push characters
  14615.         to the console screen using 'ungetch'.
  14616.      ----------------------------------------------------------------------
  14617.      #include <stdio.h>
  14618.      #include <conio.h>
  14619.      #include <process.h>
  14620.  
  14621.      int     NWNoUnload()
  14622.      {
  14623.            LONG    OldScrID = GetCurrentScreen();
  14624.            LONG    NewScrID = CreateScreen("System Console",0);
  14625.  
  14626.            if( OldScrID != NewScrID) SetCurrentScreen(NewScrID);
  14627.            ungetch('n');
  14628.            if( OldScrID != NewScrID) SetCurrentScreen(OldScrID);
  14629.  
  14630.            return 1;       // ask NetWare to do a warning message }
  14631.      ----------------------------------------------------------------------
  14632.  
  14633.      3) Since this will cause your NLM's not to unload you MUST provide an
  14634.         alternate method.  You will need to register a command processor using
  14635.         the RegisterConsoleCommand API.
  14636.  
  14637. SOLUTION
  14638.  
  14639.     NA
  14640.  
  14641.  
  14642.  
  14643.  
  14644. FYI:     Renaming Directories
  14645.                                      FYI
  14646.  
  14647. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14648.  
  14649.           TITLE:    Renaming Directories
  14650.    DOCUMENT ID#:    FYI.A.1642
  14651.            DATE:    02JAN92
  14652.         PRODUCT:    NetWare System Calls
  14653. PRODUCT VERSION:    v1.0
  14654.      SUPERSEDES:    NA
  14655.  
  14656.         SYMPTOM:    Permission denied
  14657.  
  14658.  
  14659. ISSUE/PROBLEM
  14660.  
  14661.     Current versions of the NetWare shell (up to 3.22) do not handle renaming of directories on mapped drives exactly like DOS.  Normally, DOS function 56h accepts directory names as valid parameters and will correctly rename these directories, even if both the source and destination include a full path to the directory name.  The NetWare shell, however, does not correctly handle the case when both the source and destination contain a full path. It returns permission denied.  On the other hand, if the destination is only a directory name, this works with NetWare and fails under DOS! Following is an example of output from RENAM.EXE, a program that uses DOS function 56h to rename the first argument to the second argument (C: is a local drive and F: is a NetWare mapped drive):
  14662.  
  14663.       RENAM C:\XXX\XXX C:\XXX\YYY -> successful
  14664.       RENAM C:\XXX\XXX YYY        -> permission denied
  14665.  
  14666.       RENAM F:\XXX\XXX F:\XXX\YYY -> permission denied
  14667.       RENAM F:\XXX\XXX YYY        -> successful
  14668.  
  14669.     Notice how the method for renaming that succeeds for local drives is the method that fails for remote drives, and visa versa.  The local drive version with no second path will work, however, if the current directory is the parent of the directory to be renamed.
  14670.  
  14671. SOLUTION
  14672.  
  14673.     There is no solution at this time.  The best thing to do is either change to the parent directory before renaming its subdirectry, or check to see if the device is a NetWare device and handle the rename differently based on the device (use GetDriveInformation()).
  14674.  
  14675.  
  14676.  
  14677.  
  14678. FYI:     CLIB stat() and Archive Date and Time
  14679.                                      FYI
  14680.  
  14681. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14682.  
  14683.           TITLE:    CLIB stat() and Archive Date and Time
  14684.    DOCUMENT ID#:    FYI.A.1641
  14685.            DATE:    02JAN92
  14686.         PRODUCT:    Network C for NLMs
  14687. PRODUCT VERSION:    SDK b
  14688.      SUPERSEDES:    NA
  14689.  
  14690.         SYMPTOM:    NA
  14691.  
  14692.  
  14693. ISSUE/PROBLEM
  14694.  
  14695.     The stat() function in CLIB.NLM returns garbage for the archive date and time.
  14696.  
  14697. SOLUTION
  14698.  
  14699.     Use readdir().
  14700.  
  14701.  
  14702.  
  14703.  
  14704. FYI:     LPTCaptureFlag and SetCapturePrintQueue
  14705.                                      FYI
  14706.  
  14707. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14708.  
  14709.           TITLE:    LPTCaptureFlag and SetCapturePrintQueue
  14710.    DOCUMENT ID#:    FYI.A.1640
  14711.            DATE:    02JAN92
  14712.         PRODUCT:    NetWare C Interface DOS
  14713. PRODUCT VERSION:    1.2
  14714.      SUPERSEDES:    NA
  14715.  
  14716.         SYMPTOM:    NA
  14717.  
  14718.  
  14719. ISSUE/PROBLEM
  14720.  
  14721.     When using Print Services, calling SetCapturePrintQueue to a new print server will confuse the shell into thinking you are capturing to a new queue on the original print server.
  14722.  
  14723. SOLUTION
  14724.  
  14725.     Set the flag CAPTURE_FLAGS.LPTCaptureFlag to 0 before calling SetCapturePrintQueue.  This flag tells the shell to ignore the previous queue setting because you are no longer capturing.
  14726.  
  14727.     Keep in mind, that you should be using CAPTURE_FLAGS for both the Get and Set flags functions, instead of using SET_CAPTURE_FLAGS for the Set functions.
  14728.  
  14729.  
  14730.  
  14731.  
  14732.  
  14733.  
  14734.  
  14735.  
  14736. FYI:     CLIB and NW 2.x Extended Attributes
  14737.                                      FYI
  14738.  
  14739. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14740.  
  14741.           TITLE:    CLIB and NW 2.x Extended Attributes
  14742.    DOCUMENT ID#:    FYI.A.1639
  14743.            DATE:    02JAN92
  14744.         PRODUCT:    Network C for NLMs
  14745. PRODUCT VERSION:    SDK b
  14746.      SUPERSEDES:    NA
  14747.  
  14748.         SYMPTOM:    NA
  14749.  
  14750.  
  14751. ISSUE/PROBLEM
  14752.  
  14753.     In CLIB, there is currently no method for correctly returning the extended attributes of files residing on NetWare 2.x file servers.  The functions stat(), readdir(), and GetExtendedFileAttributes() all fail to return the extended attributes from remote, 2.x servers.
  14754.  
  14755. SOLUTION
  14756.  
  14757.     Currently, there is no work around.
  14758.  
  14759.  
  14760.  
  14761.  
  14762. FYI:     CLIB and 2.x Directory Hidden/System Attributes
  14763.                                      FYI
  14764.  
  14765. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14766.  
  14767.           TITLE:    CLIB and 2.x Directory Hidden/System Attributes
  14768.    DOCUMENT ID#:    FYI.A.1638
  14769.            DATE:    02JAN92
  14770.         PRODUCT:    Network C for NLMs
  14771. PRODUCT VERSION:    SDK b
  14772.      SUPERSEDES:    NA
  14773.  
  14774.         SYMPTOM:    NA
  14775.  
  14776.  
  14777. ISSUE/PROBLEM
  14778.  
  14779.     There is currently no way of setting the System or Hidden Attributes of NetWare 2.x directories from CLIB.
  14780.  
  14781. SOLUTION
  14782.  
  14783.     Currently, there is no workaround.
  14784.  
  14785.  
  14786.  
  14787.  
  14788. FYI:     CLIB and AFPGetFileInformation Backup Time
  14789.                                      FYI
  14790.  
  14791. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14792.  
  14793.           TITLE:    CLIB and AFPGetFileInformation Backup Time
  14794.    DOCUMENT ID#:    FYI.A.1637
  14795.            DATE:    02JAN92
  14796.         PRODUCT:    Network C for NLMs
  14797. PRODUCT VERSION:    SDK b
  14798.      SUPERSEDES:    NA
  14799.  
  14800.         SYMPTOM:    NA
  14801.  
  14802.  
  14803. ISSUE/PROBLEM
  14804.  
  14805.     AFPGetFileInformation returns garbage for the backup time.
  14806.  
  14807. SOLUTION
  14808.  
  14809.     Use readdir().
  14810.  
  14811.  
  14812.  
  14813.  
  14814. FYI:     Critical Errors While Capturing
  14815.                                      FYI
  14816.  
  14817. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14818.  
  14819.           TITLE:    Critical Errors While Capturing
  14820.    DOCUMENT ID#:    FYI.A.1636
  14821.            DATE:    02JAN92
  14822.         PRODUCT:    NetWare System Calls
  14823. PRODUCT VERSION:    1.0
  14824.      SUPERSEDES:    NA
  14825.  
  14826.         SYMPTOM:    Network Error on Server...
  14827.  
  14828.  
  14829. ISSUE/PROBLEM
  14830.  
  14831.     Even after installing your own critical error handler, the message:
  14832.  
  14833.       Network Error on Server ANY-SERVER: Error receiving from network.
  14834.       Abort, Retry?
  14835.  
  14836.     may still show up on your screen.  Specifically, this will happen while printing to a CAPTURED lpt port when a network connection is lost (like unplugging the cable to the NIC).
  14837.  
  14838. SOLUTION
  14839.  
  14840.     Under this version of the shell, and previous versions as well, a critical error occuring within print capturing is considered "network critical" and is not passed to the standard critical error handler.  Currently, there is no work around.
  14841.  
  14842.  
  14843.  
  14844.  
  14845.  
  14846.  
  14847.  
  14848. FYI:     SPXListenForConnection Documentation Error
  14849.                                      FYI
  14850.  
  14851. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14852.  
  14853.           TITLE:    SPXListenForConnection Documentation Error
  14854.    DOCUMENT ID#:    FYI.A.1635
  14855.            DATE:    02JAN92
  14856.         PRODUCT:    NetWare C Interface DOS
  14857. PRODUCT VERSION:    1.2
  14858.      SUPERSEDES:    NA
  14859.  
  14860.         SYMPTOM:    NA
  14861.  
  14862.  
  14863. ISSUE/PROBLEM
  14864.  
  14865.     The C Interface for DOS and Windows documentation has a line in it that is not clear.  The line says: "The ECB passed to this function does not need packets or fragments associated with it."
  14866.  
  14867. SOLUTION
  14868.  
  14869.     This does not mean the fragment count should be set to 0.  It should, instead, be set to 1, with the only fragment being the SPX header.
  14870.  
  14871.  
  14872.  
  14873.  
  14874. FYI:     Save/Restore Directory Handle APIs
  14875.                                      FYI
  14876.  
  14877. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14878.  
  14879.           TITLE:    Save/Restore Directory Handle APIs
  14880.    DOCUMENT ID#:    FYI.A.3132
  14881.            DATE:    30DEC91
  14882.         PRODUCT:    NetWare System Calls
  14883. PRODUCT VERSION:    1.0
  14884.      SUPERSEDES:    NA
  14885.  
  14886.         SYMPTOM:    NA
  14887.  
  14888.  
  14889. ISSUE/PROBLEM
  14890.  
  14891.     The Save and Restore Directory Handle APIs are NOT supported on NetWare 3.x.  The NetWare C Interface documents this, but the NetWare System Calls does not.
  14892.  
  14893. SOLUTION
  14894.  
  14895.     Developers using Save/Restore APIs to "remember" drive mappings on a given workstation session will have to remember the entire path in order to have both a 2.x and 3.x solution.
  14896.  
  14897.  
  14898.  
  14899.  
  14900. FYI:     OS/2 Problem with DIR
  14901.                                      FYI
  14902.  
  14903. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14904.  
  14905.           TITLE:    OS/2 Problem with DIR
  14906.    DOCUMENT ID#:    FYI.A.007
  14907.            DATE:    30DEC91
  14908.         PRODUCT:    NetWare OS/2 SDK
  14909. PRODUCT VERSION:    1.3
  14910.      SUPERSEDES:    NA
  14911.  
  14912.         SYMPTOM:    NA
  14913.  
  14914.  
  14915. ISSUE/PROBLEM
  14916.  
  14917.     The DOS DIR command under OS2 seems to have some problems.  It does not seem to find a file under the following scenario.  If, for instance, you have 2 files, TEMP and TEMP.TXT, and did a DIR T*.*, it would list only the TEMP.TXT file.
  14918.  
  14919. SOLUTION
  14920.  
  14921.     NA
  14922.  
  14923.  
  14924.  
  14925.  
  14926. FYI:     Windows SDK 1.22 Documentation Errors
  14927.                                      FYI
  14928.  
  14929. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14930.  
  14931.           TITLE:    Windows SDK 1.22 Documentation Errors
  14932.    DOCUMENT ID#:    FYI.A.2925
  14933.            DATE:    20DEC91
  14934.         PRODUCT:    Windows SDK
  14935. PRODUCT VERSION:    1.22
  14936.      SUPERSEDES:    NA
  14937.  
  14938.         SYMPTOM:    NA
  14939.  
  14940.  
  14941. ISSUE/PROBLEM
  14942.  
  14943.     The following documentation errors error can be found in the Windows SDK 1.22 manual, page 5-70.  Several of the specifications for the possible completion codes when SPX calls the ESR are incorrect.
  14944.  
  14945.     The manual indicates that the SPX_CONNECTION_TERMINATED first completion code should be (0x00).  According to the NXT.H include file for the Windows SDK 1.22, it has the SPX_CONNECTION_TERMINATED as (0xED).
  14946.  
  14947.     The manual specifies that the SPX_TERMINATED_POORLY third completion code should be (0xED).  According to the NXT.H include file, it has the SPX_TERMINATED_POORLY as (0xEC).
  14948.  
  14949.     The manual specifies that the TERMINATED_BY_REMOTE_PARTNER second completion code should be (0xEC).  According to the NXT.H include file, the TERMINATED_BY_REMOTE_PARTNER does not exist.
  14950.  
  14951. SOLUTION
  14952.  
  14953.     NA
  14954.  
  14955.  
  14956.  
  14957.  
  14958. FYI:     Xtrieve PLUS and Status 259
  14959.                                      FYI
  14960.  
  14961. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14962.  
  14963.           TITLE:    Xtrieve PLUS and Status 259
  14964.    DOCUMENT ID#:    FYI.A.1743
  14965.            DATE:    20DEC91
  14966.         PRODUCT:    Xtrieve Plus Network
  14967. PRODUCT VERSION:    4.x
  14968.      SUPERSEDES:    NA
  14969.  
  14970.         SYMPTOM:    Status 259 - Error inserting new dictionary file definition
  14971.  
  14972.  
  14973. ISSUE/PROBLEM
  14974.  
  14975.     When defining or reorganizing a file with Xtrieve PLUS, it is not allowable to specify two fields with the same name; if this is attempted, a "Name already exists" error will be returned.  However, this error checking does not catch two fields with the same name that are specified with different case; it will allow the user to enter fields such as: Name and NAME.  However, when a file definition is set up with these fields, using Finished-Create or Finished-Don't Create will return an error "259 - Error inserting new dictionary file definition".
  14976.  
  14977. SOLUTION
  14978.  
  14979.     Make sure all field names are unique, disregarding case.
  14980.  
  14981.  
  14982.  
  14983.  
  14984. FYI:     Stack Corruption on Paths Larger than 255
  14985.                                      FYI
  14986.  
  14987. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  14988.  
  14989.           TITLE:    Stack Corruption on Paths Larger than 255
  14990.    DOCUMENT ID#:    FYI.A.3131
  14991.            DATE:    19DEC91
  14992.         PRODUCT:    Network C for NLMs
  14993. PRODUCT VERSION:    SDKb
  14994.      SUPERSEDES:    NA
  14995.  
  14996.         SYMPTOM:    NA
  14997.  
  14998.  
  14999. ISSUE/PROBLEM
  15000.  
  15001.     Several CLib functions declare a local stack variable for paths that is 255 bytes long.  However, if you have a path larger than this, the path parser will overwrite the stack, and the server will most likely abend. Functions exhibiting this include __open() and opendir().  __open is the internal function used by all CLib file open APIs.
  15002.  
  15003. SOLUTION
  15004.  
  15005.     Do not use paths larger than 255.
  15006.  
  15007.  
  15008.  
  15009.  
  15010. FYI:     CLib Has Problem Adding 31.09 and 1.91.
  15011.                                      FYI
  15012.  
  15013. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15014.  
  15015.           TITLE:    CLib Has Problem Adding 31.09 and 1.91.
  15016.    DOCUMENT ID#:    FYI.A.3130
  15017.            DATE:    19DEC91
  15018.         PRODUCT:    Network C for NLMs
  15019. PRODUCT VERSION:    SDKb
  15020.      SUPERSEDES:    NA
  15021.  
  15022.         SYMPTOM:    NA
  15023.  
  15024.  
  15025. ISSUE/PROBLEM
  15026.  
  15027.     If you compile with /FPC, and try to add the numbers 31.09 and 1.91, the internal CLib helper function __FDA will yield 16.0.
  15028.  
  15029. SOLUTION
  15030.  
  15031.     No solution at this time.
  15032.  
  15033.  
  15034.  
  15035.  
  15036. FYI:     CLib Doesn't Unlink File Handle
  15037.                                      FYI
  15038.  
  15039. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15040.  
  15041.           TITLE:    CLib Doesn't Unlink File Handle
  15042.    DOCUMENT ID#:    FYI.A.3129
  15043.            DATE:    19DEC91
  15044.         PRODUCT:    Network C for NLMs
  15045. PRODUCT VERSION:    SDKb
  15046.      SUPERSEDES:    NA
  15047.  
  15048.         SYMPTOM:    NA
  15049.  
  15050.  
  15051. ISSUE/PROBLEM
  15052.  
  15053.     If an NLM is servicing a queue job, and someone removes the job from the queue, when the NLM attempts to abort servicing the job, CLib will not unlink the handle from it's internal list.  This will cause memory not to be freed when the NLM is unloaded.  However, if the NLM continues to open files, and the OS reuses its internal handle again, CLib will think that the NLM already has the new file open, and simply increment the open count and return the invalid handle.  The NLM can never close the new file, and the file remains open until the NLM is unloaded.
  15054.  
  15055. SOLUTION
  15056.  
  15057.     No solution at this time, other than unloading the NLM.
  15058.  
  15059.  
  15060.  
  15061.  
  15062. FYI:     BUTIL -SAVE (or -RECOVER) to Floppy Disks
  15063.                                      FYI
  15064.  
  15065. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15066.  
  15067.           TITLE:    BUTIL -SAVE (or -RECOVER) to Floppy Disks
  15068.    DOCUMENT ID#:    FYI.A.1920
  15069.            DATE:    19DEC91
  15070.         PRODUCT:    Btrieve for DOS
  15071. PRODUCT VERSION:    5.10a
  15072.      SUPERSEDES:    N/A
  15073.  
  15074.        SYMPTOM:    N/A
  15075.  
  15076.  
  15077. ISSUE/PROBLEM
  15078.  
  15079.     Can you do a BUTIL -SAVE (or -RECOVER) to floppy disks?
  15080.  
  15081. SOLUTION
  15082.  
  15083.     Yes, you can.  If you run out of space on the floppy diskette, you will be prompted for a new filename.  At this point you can use a new floppy and a new filename (with drive letter and complete path).  For example, when attempting a BUTIL -SAVE on a 10M file containing 13407 records, the message displayed when the diskette becomes full was:
  15084.  
  15085.       2347 records saved so far.
  15086.       Disk volume is full.
  15087.       Enter new file name to continue or . to quit, then enter.
  15088.  
  15089.  
  15090.  
  15091.  
  15092. FYI:     Loading a TSR from an Application
  15093.                                      FYI
  15094.  
  15095. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15096.  
  15097.           TITLE:    Loading a TSR from an Application
  15098.    DOCUMENT ID#:    FYI.A.1919
  15099.            DATE:    19DEC91
  15100.         PRODUCT:    Btrieve for DOS
  15101. PRODUCT VERSION:    5.10a
  15102.      SUPERSEDES:    N/A
  15103.  
  15104.        SYMPTOM:    N/A
  15105.  
  15106.  
  15107. ISSUE/PROBLEM
  15108.  
  15109.     How should you load a TSR from within your application?
  15110.  
  15111. SOLUTION
  15112.  
  15113.     When loading a TSR (such as Btrieve) from within a C application, there will not be very much memory available (for instance malloc function calls will return NULLs).  This is not always true...
  15114.  
  15115.     If an application loads Btrieve using SPAWN and then does a MALLOC(5000) the MALLOC will fail.  Then, if the application attempts to use SPAWN to unload Btrieve, that will fail also.  If SYSTEM is used to load and unload Btrieve it works, but the MALLOC still fails (after about 60k).
  15116.  
  15117.     The correct way to load TSRs and still have memory available for the application is as follows: say the application will need a maximum of 20k of memory.  MALLOC 20k first, then load the TSR, then FREE the 20k.  Now the application can MALLOC for its needs (because the 20k is free).  Then you can unload the TSR.  The application can also FREE the MALLOCs used by the application.
  15118.  
  15119.  
  15120.  
  15121.  
  15122. FYI:     ALOGIN.ZIP and NULL Passwords
  15123.                                      FYI
  15124.  
  15125. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15126.  
  15127.           TITLE:    ALOGIN.ZIP and NULL Passwords
  15128.    DOCUMENT ID#:    FYI.A.3128
  15129.            DATE:    18DEC91
  15130.         PRODUCT:    NetWare System Calls
  15131. PRODUCT VERSION:    1.0
  15132.      SUPERSEDES:    NA
  15133.  
  15134.         SYMPTOM:    NA
  15135.  
  15136.  
  15137. ISSUE/PROBLEM
  15138.  
  15139.     There is a bug in the ALOGIN OBJ files that will cause a protected violation if a NULL ("") password is passed in, only if the buffer begins at offset 0 of any segment.  This was found by a developer using the OBJ in a Windows application in enhanced mode.  Obviously, the OBJs do not support the Windows environment, but this bug could also appear when used in the VAP environment.
  15140.  
  15141. SOLUTION
  15142.  
  15143.     The only interim solution would be to allocate an extra byte on your password buffer, and start at position 2 in the buffer with your password. i.e. AsmLoginToFileServer(userName,OT_USER,&passWord[1]);
  15144.  
  15145.  
  15146.  
  15147.  
  15148. FYI:     VAP ChangeProcess API Call Register Usage
  15149.                                      FYI
  15150.  
  15151. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15152.  
  15153.           TITLE:    VAP ChangeProcess API Call Register Usage
  15154.    DOCUMENT ID#:    FYI.A.3127
  15155.            DATE:    18DEC91
  15156.         PRODUCT:    NetWare System Calls
  15157. PRODUCT VERSION:    1.0
  15158.      SUPERSEDES:    NA
  15159.  
  15160.         SYMPTOM:    NA
  15161.  
  15162.  
  15163. ISSUE/PROBLEM
  15164.  
  15165.     The documentation for the Change Process VAP system call does not state that only register DS is preserved when the call returns.  All other registers are destroyed.
  15166.  
  15167. SOLUTION
  15168.  
  15169.     NA
  15170.  
  15171.  
  15172.  
  15173.  
  15174. FYI:     Patches for WATCOM C386
  15175.                                      FYI
  15176.  
  15177. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15178.  
  15179.           TITLE:    Patches for WATCOM C386
  15180.    DOCUMENT ID#:    FYI.A.3126
  15181.            DATE:    18DEC91
  15182.         PRODUCT:    Network C for NLMs
  15183. PRODUCT VERSION:    SDKb
  15184.      SUPERSEDES:    NA
  15185.  
  15186.         SYMPTOM:    NA
  15187.  
  15188.  
  15189. ISSUE/PROBLEM
  15190.  
  15191.     There are currently four patch levels available from WATCOM for C386 v8.5. They can be obtained from WATCOMs BBS @ 519-884-2103.  Readme files with each patch level discuss the various problems which are fixed.
  15192.  
  15193.     In order to create protected mode DOS applications which call Btrieve or the NetWare APIs, you will need to have all four patch levels installed.
  15194.  
  15195. SOLUTION
  15196.  
  15197.     NA
  15198.  
  15199.  
  15200.  
  15201.  
  15202.  
  15203.  
  15204. FYI:     NMPIPE.H File
  15205.                                      FYI
  15206.  
  15207. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15208.  
  15209.           TITLE:    NMPIPE.H File
  15210.    DOCUMENT ID#:    FYI.A.3823
  15211.            DATE:    17DEC91
  15212.         PRODUCT:    NetWare OS/2 SDK
  15213. PRODUCT VERSION:    1.30a
  15214.      SUPERSEDES:    NA
  15215.  
  15216.         SYMPTOM:    NA
  15217.  
  15218.  
  15219. ISSUE/PROBLEM
  15220.  
  15221.     Which file needs to be included in a client application: NMPIPE.H or OS2.H?
  15222.  
  15223. SOLUTION
  15224.  
  15225.     If you have a DOS client, then you need to include NMPIPE.H file for DOS. If it is a WINDOWS client, then you need to include NMPIPE.H file for WINDOWS.  However, if it is for an OS/2 client, then you need to include the OS2.H file.
  15226.  
  15227.  
  15228.  
  15229.  
  15230. FYI:     NMPIPE.H File Compile Errors
  15231.                                      FYI
  15232.  
  15233. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15234.  
  15235.           TITLE:    NMPIPE.H File Compile Errors
  15236.    DOCUMENT ID#:    FYI.A.3822
  15237.            DATE:    17DEC91
  15238.         PRODUCT:    NetWare OS/2 SDK
  15239. PRODUCT VERSION:    1.30a
  15240.      SUPERSEDES:    NA
  15241.  
  15242.         SYMPTOM:    Compiler errors while compiling NMPIPE.H file
  15243.  
  15244.  
  15245. ISSUE/PROBLEM
  15246.  
  15247.     On lines 65, 69, 71, and 74 of the NMPIPE.H file for DOS clients, there is a semicolon after the #define statement.
  15248.  
  15249. SOLUTION
  15250.  
  15251.     There is a comment following the semicolon, so replace the semicolon with the comment delimiters (/* ... */).
  15252.  
  15253.  
  15254.  
  15255.  
  15256. FYI:     ALOGIN.ZIP
  15257.                                      FYI
  15258.  
  15259. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15260.  
  15261.           TITLE:    ALOGIN.ZIP
  15262.    DOCUMENT ID#:    FYI.A.3821
  15263.            DATE:    12DEC91
  15264.         PRODUCT:    NetWare System Calls
  15265. PRODUCT VERSION:    1.0
  15266.      SUPERSEDES:    NA
  15267.  
  15268.         SYMPTOM:    AsmLoginToFileServer() does not login
  15269.  
  15270.  
  15271. ISSUE/PROBLEM
  15272.  
  15273.     If a user is configured to have an expiration date for his password, and then a Supervisor or Supervisor equivalent changes that user's password, the expiration date is set to January 1, 1985.  So the next time the user logs in with the Login utility, he is prompted to change his password.
  15274.  
  15275.     However, if the same user is attempting to login through AsmLoginToFileServer, it returns 0xdf which is not documented as a successful code.  In fact, it does login the user but returns 0xdf to indicate that the password has expired.
  15276.  
  15277. SOLUTION
  15278.  
  15279.     Even though AsmLoginToFileServer() returns 0xdf, it still logs in the user. So 0xdf is also a successful code and means that the user's password has expired.
  15280.  
  15281.  
  15282.  
  15283.  
  15284. FYI:     _get_CLK_TCK Symbol
  15285.                                      FYI
  15286.  
  15287. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15288.  
  15289.           TITLE:    _get_CLK_TCK Symbol
  15290.    DOCUMENT ID#:    FYI.A.3820
  15291.            DATE:    12DEC91
  15292.         PRODUCT:    Network C for NLMs
  15293. PRODUCT VERSION:    SDK b
  15294.      SUPERSEDES:    NA
  15295.  
  15296.         SYMPTOM:    "cannot find symbol _get_CLK_TCK" with NetWare 3.10
  15297.  
  15298.  
  15299. ISSUE/PROBLEM
  15300.  
  15301.     _get_CLK_TCK is an internal function of CLIB V3.11.  This function is not present in CLIB 3.10.  Some of the CLIB v3.11 functions call _get_CLK_TCK(). So, if an NLM was compiled with SDK b, it might not load on a 3.10 server depending on whether those CLIB functions are being called or not.
  15302.  
  15303.     The solution to this is to write an NLM that exports this symbol and returns 100; then, to autoload this NLM in the 3.10 environment before loading your NLM.  The reason that the autoloaded NLM should return 100 is because in CLIB 3.10 the equivalent of _get_CLK_TCK() is a #define statement which is set to 100.
  15304.  
  15305. SOLUTION
  15306.  
  15307.     NA
  15308.  
  15309.  
  15310.  
  15311.  
  15312. FYI:     Calling NetBios Function ASYNC_RECEIVE_ANY
  15313.                                      FYI
  15314.  
  15315. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15316.  
  15317.           TITLE:    Calling NetBios Function ASYNC_RECEIVE_ANY
  15318.    DOCUMENT ID#:    FYI.A.2924
  15319.            DATE:    12DEC91
  15320.         PRODUCT:    Network C for NLMs
  15321. PRODUCT VERSION:    2.0b
  15322.      SUPERSEDES:    NA
  15323.  
  15324.         SYMPTOM:    NA
  15325.  
  15326.  
  15327. ISSUE/PROBLEM
  15328.  
  15329.     When calling the NetBios function ASYNC_RECEIVE_ANY (NCB COMMAND = 96), you will need to call NetBiosSubmit with EXCLUSIVE access mode and not REGULAR access mode.  Otherwise you will receive error 0x05 as the NetBios result.  Error 0x05 means access denied when attempting to submit RECEIVE_ANY NCB.  Novell SDK NetBios documentation on page 29 fails to mention the 0x05 as return code for the NetBiosSubmit.
  15330.  
  15331. SOLUTION
  15332.  
  15333.     NA
  15334.  
  15335.  
  15336.  
  15337.  
  15338. FYI:     Calling NetBios Function RECEIVE_ANY_FROM_ANY
  15339.                                      FYI
  15340.  
  15341. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15342.  
  15343.           TITLE:    Calling NetBios Function RECEIVE_ANY_FROM_ANY
  15344.    DOCUMENT ID#:    FYI.A.2923
  15345.            DATE:    12DEC91
  15346.         PRODUCT:    Network C for NLMs
  15347. PRODUCT VERSION:    2.0b
  15348.      SUPERSEDES:    NA
  15349.  
  15350.         SYMPTOM:    NA
  15351.  
  15352.  
  15353. ISSUE/PROBLEM
  15354.  
  15355.     According to the IBM NetBios specifications the function RECEIVE_ANY_FROM_ANY (NCB COMMAND = 96) will look in the NCB_NUM field for FF value.  However, the Novell NetBios driver emulator DOES NOT follow this format.  The Novell NetBios driver emulator looks for * in the NCB_CALL_NAME instead.
  15356.  
  15357. SOLUTION
  15358.  
  15359.     NA
  15360.  
  15361.  
  15362.  
  15363.  
  15364. FYI:     Executing an OS/2 Batch File from an OS/2 Login Script
  15365.                                      FYI
  15366.  
  15367. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15368.  
  15369.           TITLE:    Executing an OS/2 Batch File from an OS/2 Login Script
  15370.    DOCUMENT ID#:    FYI.A.2922
  15371.            DATE:    12DEC91
  15372.         PRODUCT:    NetWare
  15373. PRODUCT VERSION:    3.x
  15374.      SUPERSEDES:    NA
  15375.  
  15376.         SYMPTOM:    NA
  15377.  
  15378.  
  15379. ISSUE/PROBLEM
  15380.  
  15381.     Yes, you can execute an OS/2 batch file from your login script or from your system login script.  You MUST use the Universal Naming Convention when specifying the path name for your batchfile.CMD.  The following is an example of how you should write the command in your login script file.
  15382.  
  15383.      #c:\os2\cmd /c \\server\vol\dir1\dir2\filex.cmd
  15384.  
  15385.     You do not have to use the path for the cmd "C:\OS2\CMD", but you will need to make sure that the OS/2 directory is in your path variable.
  15386.  
  15387. SOLUTION
  15388.  
  15389.     NA
  15390.  
  15391.  
  15392.  
  15393.  
  15394. FYI:     ScanBinderyObjectTrusteePaths
  15395.                                      FYI
  15396.  
  15397. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15398.  
  15399.           TITLE:    ScanBinderyObjectTrusteePaths
  15400.    DOCUMENT ID#:    FYI.A.3350
  15401.            DATE:    10DEC91
  15402.         PRODUCT:    Network C for NLMs
  15403. PRODUCT VERSION:    2.0b
  15404.      SUPERSEDES:    NA
  15405.  
  15406.         SYMPTOM:    Memory Corruption
  15407.  
  15408.  
  15409. ISSUE/PROBLEM
  15410.  
  15411.     The NetWork C for NLMs SDK states that the trusteePathName returned by the call will return a maximum of 255 bytes.  This is incorrect; up to 318 bytes may be returned when this call returns.  The file server name, volume name and full path, not just the full path, will be returned.
  15412.  
  15413. SOLUTION
  15414.  
  15415.     The character array for the trusteePathName should be defined as 318 bytes, instead of 255 bytes.
  15416.  
  15417.  
  15418.  
  15419.  
  15420. FYI:     Dedicated IPX Versus IPXODI
  15421.                                      FYI
  15422.  
  15423. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15424.  
  15425.           TITLE:    Dedicated IPX Versus IPXODI
  15426.    DOCUMENT ID#:    FYI.A.3349
  15427.            DATE:    10DEC91
  15428.         PRODUCT:    NetWare C Interface DOS
  15429. PRODUCT VERSION:    1.20
  15430.      SUPERSEDES:    NA
  15431.  
  15432.         SYMPTOM:    NA
  15433.  
  15434.  
  15435. ISSUE/PROBLEM
  15436.  
  15437.     ODI and dedicated (linked) IPX have the same functionality.  Everything should work fine.  NetWare Lite will run on top of ODI or Dedicated IPX. Novell is moving away from dedicated IPX towards ODI.  Our Independant Manufacturers Support Program (IMSP) group will not be certifying dedicated IPX drivers after June of 1992.
  15438.  
  15439.     For Novell to help with specific problems, you will need to specifically tell us what is not working for you.  You should direct your inquiries through Novell Austin Developer support (1-800-NETWARE).
  15440.  
  15441.     What we are saying is that it should work the same regardless of whether it is dedicated IPX or ODI.  The only two things that might possibly be problems are that the ODI cancel ECB function will return the error "I can't cancel at this time" where as dedicated would usually always cancel.  This error is valid for both dedicated and ODI, however, you used to be able to do that without a socket open.  Now it checks for an open socket before it will succeed (this was put in ODI and added to the latest dedicated IPX sometime earlier this year).
  15442.  
  15443. SOLUTION
  15444.  
  15445.     NA
  15446.  
  15447.  
  15448.  
  15449.  
  15450. FYI:    Btrieve Extended Operations
  15451.                                      FYI
  15452.  
  15453. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15454.  
  15455.           TITLE:    Btrieve Extended Operations
  15456.    DOCUMENT ID#:    FYI.A.3348
  15457.            DATE:    10DEC91
  15458.         PRODUCT:    Btrieve for DOS/NLM/VAP
  15459. PRODUCT VERSION:    5.10
  15460.      SUPERSEDES:    NA
  15461.  
  15462.         SYMPTOM:    Status 62
  15463.  
  15464.  
  15465. ISSUE/PROBLEM
  15466.  
  15467.     A status 62 is returned by Btrieve after the first extended call has been performed successfully.
  15468.  
  15469. SOLUTION
  15470.  
  15471.     Since the descriptor information is stored as a union in C, or a redefinition in COBOL, this data gets overwritten by the output data buffer when the first extended call is issued.  The descriptor information needs to be updated before each extended call.
  15472.  
  15473.  
  15474.  
  15475.  
  15476. FYI:     PATCH311 and the sopen() O_BINARY Mode
  15477.                                      FYI
  15478.  
  15479. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15480.  
  15481.           TITLE:    PATCH311 and the sopen() O_BINARY Mode
  15482.    DOCUMENT ID#:    FYI.A.2921
  15483.            DATE:    10DEC91
  15484.         PRODUCT:    Network C for NLMs
  15485. PRODUCT VERSION:    2.0b
  15486.      SUPERSEDES:    NA
  15487.  
  15488.         SYMPTOM:    NA
  15489.  
  15490.  
  15491. ISSUE/PROBLEM
  15492.  
  15493.     If you load PATCH311.NLM on your file server, you may notice that files are opened in binary mode, regardless of what you specify.  This is due to the fact that the O_BINARY flag is hard coded in the underlying CLIB open API.
  15494.  
  15495.      Example:
  15496.  
  15497.     When calling a function like sopen(), if you pass the O_TEXT flag, it will be ignored.  This is due to the fact the the O_BINARY gets set for you automatically.  If you turn around and use the same file handle that you received from sopen() and pass it to fdopen(), you will need to specify that the file will be opened in binary mode.  If you do not, fdopen() will attempt to open the file in TEXT mode, which will conflict with the way the file was originally opened.
  15498.  
  15499. SOLUTION
  15500.  
  15501.     Currently, you cannot fdopen() a file descriptor in text mode.  If you want to open a file in text mode, use fopen("file","r+t") instead.
  15502.  
  15503.  
  15504.  
  15505.  
  15506. FYI:     Calling sopen() with O_CREAT and the SH_DENYRD
  15507.                                      FYI
  15508.  
  15509. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15510.  
  15511.           TITLE:    Calling sopen() with O_CREAT and the SH_DENYRD
  15512.    DOCUMENT ID#:    FYI.A.2920
  15513.            DATE:    10DEC91
  15514.         PRODUCT:    Network C for NLMs
  15515. PRODUCT VERSION:    2.0b
  15516.      SUPERSEDES:    NA
  15517.  
  15518.         SYMPTOM:    NA
  15519.  
  15520.  
  15521. ISSUE/PROBLEM
  15522.  
  15523.     When calling sopen() with the O_CREATE mode, sopen() will ignore any of the share flags, like SH_DENYRW, if the file does not exist.  CLIB was written in this manner to meet the recommended file I/O standard in other operating systems like OS/2.
  15524.  
  15525. SOLUTION
  15526.  
  15527.     If the file does not exist, do not count on using any of the flags in the SHARE.H file.
  15528.  
  15529.  
  15530.  
  15531.  
  15532. FYI:     TIRPC 1.0 and Latest Release for the NLM SDK B
  15533.                                      FYI
  15534.  
  15535. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15536.  
  15537.           TITLE:    TIRPC 1.0 and Latest Release for the NLM SDK B
  15538.    DOCUMENT ID#:    FYI.A.2919
  15539.            DATE:    10DEC91
  15540.         PRODUCT:    Network C for NLMs
  15541. PRODUCT VERSION:    2.0b
  15542.      SUPERSEDES:    NA
  15543.  
  15544.         SYMPTOM:    NA
  15545.  
  15546.  
  15547. ISSUE/PROBLEM
  15548.  
  15549.     The NLM TIRPC 1.0 which is the latest release, was compiled and tested with the NLM SDK A.  If you are using NLM SDK B (v2.0b) the NLM TIRPC examples will not work.  This is due to the fact that the latest release for the SDK included all of the WATCOM compiler, which means that the directory structure naming convention for setting up the SDK B is different from NLM SDK A. Developers MUST read the README.DOC file that was supplied with their NLM SDK B and follow the new directory structure.  The TIRPC folks are aware of the conflict between their current release of the NLM TIRPC 1.0 and the new NLM SDK B.
  15550.  
  15551. SOLUTION
  15552.  
  15553.     If you are using the new NLM SDK B, be sure to read the README.DOC file first and set up your NLM SDK and the WATCOM compiler accordingly.
  15554.  
  15555.  
  15556.  
  15557.  
  15558. FYI:     Attributes for Trustees
  15559.                                      FYI
  15560.  
  15561. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15562.  
  15563.           TITLE:    Attributes for Trustees
  15564.    DOCUMENT ID#:    FYI.A.2644
  15565.            DATE:    10DEC91
  15566.         PRODUCT:    NetWare C Interface DOS
  15567. PRODUCT VERSION:    1.2
  15568.      SUPERSEDES:    NA
  15569.  
  15570.         SYMPTOM:    NA
  15571.  
  15572.  
  15573. ISSUE/PROBLEM
  15574.  
  15575.     The ScanBinderyObjectTrusteePaths API does not return the correct trustee attributes for NetWare 3.x.
  15576.  
  15577. SOLUTION
  15578.  
  15579.     Must follow the above call with an explicit call to ScanEntryForTrustees which does return the correct attributes.  This creates more work but it does return the correct results.
  15580.  
  15581.  
  15582.  
  15583.  
  15584. FYI:     GetDiskUtilization & NetWare 3.x
  15585.                                      FYI
  15586.  
  15587. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15588.  
  15589.           TITLE:    GetDiskUtilization & NetWare 3.x
  15590.    DOCUMENT ID#:    FYI.A.2643
  15591.            DATE:    10DEC91
  15592.         PRODUCT:    NetWare C Interface DOS
  15593. PRODUCT VERSION:    1.2
  15594.      SUPERSEDES:    NA
  15595.  
  15596.         SYMPTOM:    NA
  15597.  
  15598.  
  15599. ISSUE/PROBLEM
  15600.  
  15601.     The 'usedblocks' value that is returned from the GetDiskUtilization API is not correctly returned for NetWare 3.x.
  15602.  
  15603. SOLUTION
  15604.  
  15605.     To fix the problem carry out a WORD swap on the LONG value that is returned.      i.e.:  usedblocks = (usedblocks >> 16) | (usedblocks << 16);
  15606.  
  15607.     This is not documented.
  15608.  
  15609.  
  15610.  
  15611.  
  15612. FYI:     Login Scripts Under the OS/2 Operating System
  15613.                                      FYI
  15614.  
  15615. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15616.  
  15617.           TITLE:    Login Scripts Under the OS/2 Operating System
  15618.    DOCUMENT ID#:    FYI.A.2918
  15619.            DATE:    06DEC91
  15620.         PRODUCT:    Network C for NLMs
  15621. PRODUCT VERSION:    2.0b
  15622.      SUPERSEDES:    NA
  15623.  
  15624.         SYMPTOM:    NA
  15625.  
  15626.  
  15627. ISSUE/PROBLEM
  15628.  
  15629.     The login script under the OS/2 environment is a little bit different than the DOS environment.  Under OS/2, there are no search mappings allowed; you can only map network drives.  All of your search mappings should be placed in your CONFIG.SYS under the PATH variable.  If you use the INCLUDE command in your login script, you must follow the Universal Naming Convention that is supported under OS/2.  For example:
  15630.  
  15631.              INCLUDE \\TEST_SERVER\SYS\DIR1\DIR2\TEST.TXT
  15632.  
  15633.     TEST.TXT will have some additional login script commands.  You can execute any .EXE or .COM file from the OS/2 login script by using the # sign. For example:
  15634.  
  15635.             #MAP
  15636.  
  15637. SOLUTION
  15638.  
  15639.     NA
  15640.  
  15641.  
  15642.  
  15643.  
  15644. FYI:     Brequest Hanging Problems in DOSBOX under Windows/VIPX.386
  15645.                                      FYI
  15646.  
  15647. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15648.  
  15649.           TITLE:    Brequest Hanging Problems in DOSBOX under Windows/VIPX.386
  15650.    DOCUMENT ID#:    FYI.A.1851
  15651.            DATE:    05DEC91
  15652.         PRODUCT:    NetWare Btrieve NLM
  15653. PRODUCT VERSION:    5.1x
  15654.      SUPERSEDES:    NA
  15655.  
  15656.         SYMPTOM:    Brequest Hanging in DOSBOX under Windows
  15657.  
  15658.  
  15659. ISSUE/PROBLEM
  15660.  
  15661.     Brequest would hang in a DOSBOX in WINDOWS enhanced mode.  With the release of VIPX.386 the hanging should not occur.  VIPX.386 is available on Compuserve in the NOVLIB forum.
  15662.  
  15663.     To use VIPX.386, a new IPX must be genned.  Then, the SYSTEM.INI file should be modified:  the section starting with [386enh] contains the line "network=".  VIPX.386 should be added to this line.
  15664.  
  15665.     For example:
  15666.  
  15667.       [386enh]
  15668.       network=vnetware.386,vipx.386
  15669.  
  15670.     Windows will load the driver when Windows loads.
  15671.  
  15672. SOLUTION
  15673.  
  15674.     NA
  15675.  
  15676.  
  15677.  
  15678.  
  15679. FYI:    Substitution in SET Statement
  15680.                                      FYI
  15681.  
  15682. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15683.  
  15684.           TITLE:    Substitution in SET Statement
  15685.    DOCUMENT ID#:    FYI.A.1850
  15686.            DATE:    05DEC91
  15687.         PRODUCT:    NetWare SQL 386 NLM
  15688. PRODUCT VERSION:    2.11
  15689.      SUPERSEDES:    NA
  15690.  
  15691.         SYMPTOM:    NA
  15692.  
  15693.  
  15694. ISSUE/PROBLEM
  15695.  
  15696.     Using substitution in a SET statement is not legal.  One cannot say
  15697.  
  15698.       SET default State = @value
  15699.  
  15700.     The documentation is not clear on this but it has been confirmed by development that it is not legal.
  15701.  
  15702. SOLUTION
  15703.  
  15704.     NA
  15705.  
  15706.  
  15707.  
  15708.  
  15709. FYI:     File Copying On 386 File Servers
  15710.                                      FYI
  15711.  
  15712. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15713.  
  15714.           TITLE:    File Copying On 386 File Servers
  15715.    DOCUMENT ID#:    FYI.A.2916
  15716.            DATE:    04DEC91
  15717.         PRODUCT:    Network C for NLMs
  15718. PRODUCT VERSION:    2.0b
  15719.      SUPERSEDES:    NA
  15720.         SYMPTOM:    NA
  15721.  
  15722.  
  15723. ISSUE/PROBLEM
  15724.  
  15725.     When calling the function FileServerFileCopy() under the DOS API 1.21, you will need to input the numberOfBytesToCopy.  If you need to copy the entire file you will need to set the numberOfBytesToCopy = 0xFFFFFFFF.  This will eliminate the need to call another function like filelength().  Also, when you use the filelength() to get the filesize, it will double the size of the file.
  15726.  
  15727. SOLUTION
  15728.  
  15729.     NA
  15730.  
  15731.  
  15732.  
  15733.  
  15734. FYI:     Writing NLMs to Make Btrieve Calls
  15735.                                      FYI
  15736.  
  15737. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15738.  
  15739.           TITLE:    Writing NLMs to Make Btrieve Calls
  15740.    DOCUMENT ID#:    FYI.A.1918
  15741.            DATE:    04DEC91
  15742.         PRODUCT:    NetWare Btrieve NLM
  15743. PRODUCT VERSION:    NA
  15744.      SUPERSEDES:    NA
  15745.  
  15746.         SYMPTOM:    NA
  15747.  
  15748.  
  15749. ISSUE/PROBLEM
  15750.  
  15751.     What Btrieve interface should you use when writing an NLM to issue Btrieve calls?
  15752.  
  15753. SOLUTION
  15754.  
  15755.     None.  No interface is required because either 'btrv' or btrvID' is called, and these are both symbols exported by the Btrieve NLM.
  15756.  
  15757.  
  15758.  
  15759.  
  15760. FYI:    Status -1 When Using MAKE_XTA.EXE
  15761.                                      FYI
  15762.  
  15763. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15764.  
  15765.           TITLE:    Status -1 When Using MAKE_XTA.EXE
  15766.    DOCUMENT ID#:    FYI.A.1917
  15767.            DATE:    04DEC91
  15768.         PRODUCT:    Xtrieve Plus Network
  15769. PRODUCT VERSION:    4.10
  15770.      SUPERSEDES:    NA
  15771.  
  15772.         SYMPTOM:    NA
  15773.  
  15774.  
  15775. ISSUE/PROBLEM
  15776.  
  15777.     When running the Xtrieve PLUS MAKE_XTA utility, you can get a status -1. What does this error code mean?
  15778.  
  15779. SOLUTION
  15780.  
  15781.     It means you do not have XQL loaded.
  15782.  
  15783.  
  15784.  
  15785.  
  15786. FYI:    NetWare C for NLM's & Time Zones
  15787.                                      FYI
  15788.  
  15789. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15790.  
  15791.           TITLE:    NetWare C for NLM's & Time Zones
  15792.    DOCUMENT ID#:    FYI.A.2642
  15793.            DATE:    03DEC91
  15794.         PRODUCT:    Network C for NLMs
  15795. PRODUCT VERSION:    2.0b
  15796.      SUPERSEDES:    NA
  15797.  
  15798.         SYMPTOM:    NA
  15799.  
  15800.  
  15801. ISSUE/PROBLEM
  15802.  
  15803.     Just a reminder: when setting the time zones on a file server and trying to use the 'time' functions, it should be done before loading CLIB.  CLIB itself reads the time information only at load time.
  15804.  
  15805.     If the time zone is set after CLIB is loaded, it must be reloaded in order for the new time zone to take effect.
  15806.  
  15807. SOLUTION
  15808.  
  15809.     NA
  15810.  
  15811.  
  15812.  
  15813.  
  15814. FYI:    COPY CON Creates 0 Byte File, DOS 5.0
  15815.                                      FYI
  15816.  
  15817. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15818.  
  15819.           TITLE:    COPY CON Creates 0 Byte File, DOS 5.0
  15820.    DOCUMENT ID#:    FYI.P.4821
  15821.            DATE:    02DEC91
  15822.         PRODUCT:    NetWare
  15823. PRODUCT VERSION:    NA
  15824.      SUPERSEDES:    NA
  15825.  
  15826.         SYMPTOM:    COPY CON Creates 0 Byte File, DOS 5.0
  15827.  
  15828. ISSUE/PROBLEM
  15829.  
  15830.     If one were to create a file using COPY CON in a directory with Create rights only, one would be unsuccessful with DOS 5.0, but indeed successful with DOS 4.0 or DR DOS 6.0.  The DOS 5.0 instance would allow the file to be created, but not allow anything to be written into it.  The result of the COPY CON is a 0 byte file.
  15831.  
  15832. SOLUTION
  15833.  
  15834.     DOS 5.0 requires that both Create and Write rights be present for the COPY CON command to perform as expected.
  15835.  
  15836.  
  15837.  
  15838.  
  15839. FYI:    PATCH for PRELUDE.OBJ
  15840.                                      FYI
  15841.  
  15842. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15843.  
  15844.           TITLE:    PATCH for PRELUDE.OBJ
  15845.    DOCUMENT ID#:    FYI.A.006
  15846.            DATE:    02DEC91
  15847.         PRODUCT:    Network C for NLMs
  15848. PRODUCT VERSION:    2.0b
  15849.      SUPERSEDES:    NA
  15850.  
  15851.         SYMPTOM:    NA
  15852.  
  15853.  
  15854. ISSUE/PROBLEM
  15855.  
  15856.     When testing NLMs using the Client/Server Application Testing Kit, there can be a problem caused by a call to the stack check function during NLM startup.  A patch, PSTACK.TXT will NOP the call to __STK.
  15857.  
  15858. SOLUTION
  15859.  
  15860.     The patch file, PSTACK.TXT will be available for download from CompuServe.
  15861.  
  15862.  
  15863.  
  15864.  
  15865. FYI:    Problems with the 3.22 Shell
  15866.                                      FYI
  15867.  
  15868. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15869.  
  15870.           TITLE:    Problems with the 3.22 Shell
  15871.     DOCUMENT ID:    FYI.A.3347
  15872.            DATE:    26NOV91
  15873.         PRODUCT:    NetWare System Calls
  15874. PRODUCT VERSION:    1.20
  15875.      SUPERSEDES:    NA
  15876.  
  15877.         SYMPTOM:    Files not closed even though close is issued.
  15878.  
  15879. ISSUE/PROBLEM
  15880.  
  15881.     File handles inherited by a child process may not be closed when the parent process eventually closes them.  No error is returned.  This occurs due to a 3.22 shell bug that allows more that twenty file handles to be inherited by a child process.  DOS restricts child processes to only inheriting twenty files.  When the child inherits more that twenty file handles, it corrupts the DOS file handle table.
  15882.  
  15883. SOLUTION
  15884.  
  15885.     Currently, the only solution is to not increase the size of the file handle table when spawning a child process.  The next version of the shell will correct this problem.
  15886.  
  15887.  
  15888.  
  15889.  
  15890. FYI:    Xtrieve and Lotus 123
  15891.                                      FYI
  15892.  
  15893. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15894.  
  15895.           TITLE:    Xtrieve and Lotus 123
  15896.     DOCUMENT ID:    FYI.A.2505
  15897.            DATE:    26NOV91
  15898.         PRODUCT:    Xtrieve PLUS
  15899. PRODUCT VERSION:    4.10
  15900.      SUPERSEDES:    NA
  15901.  
  15902.         SYMPTOM:    NA
  15903.  
  15904. ISSUE/PROBLEM
  15905.     Users trying to import dates into Lotus 123 using a file created by Xtrieve 4.10 using the "Translate to DIF" option, will find that the dates are off by one.  This is because Xtrieve considers the magic date 01/01/1900 as day zero, whereas Lotus considers the same date as day one.
  15906.  
  15907. SOLUTION
  15908.  
  15909.     Users can use a formula to subtract one from the date on the Lotus side to convert the data to the proper date.
  15910.  
  15911.  
  15912.  
  15913.  
  15914. FYI:    PROTECT NLM
  15915.                                      FYI
  15916.  
  15917. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15918.  
  15919.           TITLE:    PROTECT NLM
  15920.    DOCUMENT ID#:    FYI.A.005
  15921.            DATE:    26NOV91
  15922.         PRODUCT:    Network C for NLMs
  15923. PRODUCT VERSION:    2.0b
  15924.      SUPERSEDES:    NA
  15925.  
  15926.         SYMPTOM:    NA
  15927.  
  15928.  
  15929. ISSUE/PROBLEM
  15930.  
  15931.     If one NLM tries to read data from the code segment of another NLM, PROTECT NLM will catch this, when it should not.  To reproduce this, compile a program using the /zc option. In the program, simply try to open a file. The /zc option would place the literal strings in the code segment.
  15932.  
  15933. SOLUTION
  15934.  
  15935.     Currently there is no solution to this problem (i.e provided the program is compiled with the /zc option).
  15936.  
  15937.  
  15938.  
  15939.  
  15940. FYI:    TTS and Btrieve
  15941.                                      FYI
  15942.  
  15943. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15944.  
  15945.           TITLE:    TTS and Btrieve
  15946.     DOCUMENT ID:    FYI.A.3343
  15947.            DATE:    21NOV91
  15948.         PRODUCT:    NetWare Btrieve NLM
  15949. PRODUCT VERSION:    5.15
  15950.      SUPERSEDES:    NA
  15951.  
  15952.         SYMPTOM:    Dirty Cache filling up, TTS Disabled, File Corruption
  15953.  
  15954. ISSUE/PROBLEM
  15955.  
  15956.     There have been a few reports of Btrieve files being corrupted or of slow response from Btrieve in very large environments.  These sites all had their Btrieve files flagged as transactional and were generally running very fast servers with large drives.  One of the sites was running an EISA based server and the other was running a server with a microchannel bus with fast NIC cards installed.
  15957.  
  15958.     Dirty cache was filling up at both of the above sites.  When this occurred the cache would be flushed, but during this time no transactions were allowed to take place, thereby halting the Btrieve application.  Network communications also slowed down considerably.  The cache buffers were filling up because the server was being overwhelmed with TTS requests.  A large number of Btrieve NLM processes (threads) were submitting these requests to TTS.  This was especially true at a site with 16K disk block sizes.  Since TTS tracks on a block by block basis, and their records were only 20 to 120 bytes, they were using multiple cache blocks for each Btrieve request.
  15959.  
  15960. SOLUTION
  15961.  
  15962.     The possible work arounds for this problem are to reduce the number of Btrieve threads running on the server, lower the disk block size, or to use Btrieve's preimaging instead of TTS.
  15963.  
  15964.     TTS was being disabled due to the TTS backout file growing to a point where it fills up the SYS volume.  At this point TTS is disabled.  This occurs because the server is so busy keeping up with TTS requests that it does not truncate its TTS backout file.  The default for maximum truncation wait time is 59 minutes and 19.2 seconds.  This can be too long in some environments.  The fact that the disk block size was set to 16K contributed to the size of the TTS backout file as well, since TTS tracks on a block by block basis.  The server will wait the full period of time before truncating the file if it is busy.  If there are a lot of transactions from multiple stations taking place and the SYS volume is small, the backout file will grow until it uses up all of the space on the volume.  At this point TTS will be disabled.  There are three possible solutions in this scenario.  One, use the console "set TTS Backout File Truncation Time" command to lower the maximum truncation wait time.  Two, use a smaller disk block size.  Three, use Btrieve's preimaging to insure the files integrity.
  15965.  
  15966.     Btrieve, however, has no idea that TTS has been disabled due to a TTS bug which does not report that TTS is Disabled when a Begin/End/Abort Transaction is issued.  Therefore, Btrieve cannot return an error status when the Begin/End/Abort Transaction is issued.  This has been reported as a 3.11 OS bug.
  15967.  
  15968.  
  15969.  
  15970.  
  15971. FYI:    LCXBTRV2.C Problems with Lattice C 2.0 & Large Model
  15972.                                      FYI
  15973.  
  15974. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  15975.  
  15976.           TITLE:    LCXBTRV2.C Problems with Lattice C 2.0 & Large Model
  15977.     DOCUMENT ID:    FYI.A.2018
  15978.            DATE:    20NOV91
  15979.         PRODUCT:    Btrieve for DOS
  15980. PRODUCT VERSION:    5.10a
  15981.      SUPERSEDES:    NA
  15982.  
  15983.         SYMPTOM:    Undefined externals
  15984.  
  15985. ISSUE/PROBLEM
  15986.  
  15987.     If a program using the LCXBTRV2.C Btrieve interface (for version 2.0 of Lattice C) is compiled with the Lattice C 2.0 compiler using a large memory model, an 'Undefined external' message will result.  When compiling using the large model, the interface is calling a function FP_OFF which does not exist with Lattice C v2.0.  This call was not introduced until Lattice C v3.0.
  15988.  
  15989. SOLUTION
  15990.  
  15991.     Since the purpose of the FP_OFF function (in version 3.0) is only to return the offset of a far pointer, the function can be duplicated with 2.0 by type casting the far pointer to an unsigned.  This will return the first two bytes of the address, which is the offset.
  15992.  
  15993.     The changes that need to be made to the LCXBTRV2.C interface are as follows:
  15994.  
  15995.        line 125:      REGS.DX = (int) FP_OFF(&XDATA);
  15996.        change to:     REGS.DX = ((unsigned) (&XDATA));
  15997.  
  15998.        line 142:      REGS.DX = (int) FP_OFF(&XDATA);
  15999.        change to:     RECS.DX = ((unsigned) (&XDATA));
  16000.  
  16001.  
  16002.  
  16003.  
  16004. FYI:    Forward Slashes in Btrieve Path names
  16005.                                      FYI
  16006.  
  16007. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16008.  
  16009.           TITLE:    Forward Slashes in Btrieve Path names
  16010.     DOCUMENT ID:    FYI.A.1849
  16011.            DATE:    19NOV91
  16012.         PRODUCT:    Btrieve for DOS
  16013. PRODUCT VERSION:    5.10a
  16014.      SUPERSEDES:    NA
  16015.  
  16016.         SYMPTOM:    Status 12
  16017.  
  16018. ISSUE/PROBLEM
  16019.  
  16020.     A status 12 can occur if a path name is defined using forward slashes under Btrieve for DOS.  A path name such as:
  16021.  
  16022.           F:/DIR1/DIR2/DATAFILE.BTR
  16023.  
  16024.     will return a status of 12 - File Not Found.  The forward slash is not a legal character for a path name in DOS and therefore Btrieve for DOS is passing it onto the DOS operating system and receiving an error.  A status 11 - Invalid File Name, seems more appropriate, but the 12 is returned.  On a NetWare network, accessing NetWare files, the problem does not occur because NetWare uses both the '/' and the '\' as legal characters in a path name.  C programmers may find this problem more often because they are using the forward slash as an alternative to the back slash, because the back slash is a control character for strings.  To get around this in a C program, place two back slashes in the string being passed to Btrieve wherever a single back slash needs to be specified.
  16025.  
  16026. SOLUTION
  16027.  
  16028.     NA
  16029.  
  16030.  
  16031.  
  16032.  
  16033. FYI:    Transactions and Btrieve
  16034.                                      FYI
  16035.  
  16036. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16037.  
  16038.           TITLE:    Transactions and Btrieve
  16039.     DOCUMENT ID:    FYI.A.1848
  16040.            DATE:    19NOV91
  16041.         PRODUCT:    Btrieve for DOS
  16042. PRODUCT VERSION:    5.10
  16043.      SUPERSEDES:    NA
  16044.  
  16045.         SYMPTOM:    NA
  16046.  
  16047. ISSUE/PROBLEM
  16048.  
  16049.     The following Btrieve test was run:
  16050.  
  16051.      STEPS      Workstation A                 Workstation B
  16052.      ------------------------------------------------------------------------
  16053.        1.       Open FileA
  16054.        2.                                     Open FileA
  16055.        3.       GetFirst on Key 0
  16056.        4.                                     GetFirst on Key 0
  16057.        5.       Begin Trans. (19)
  16058.        6.       GetFirst on Key 0
  16059.        7.                                     GetNext on Key 0
  16060.        8.                                     Update *** FREEZES UNTIL STEP 9
  16061.        9.       End Trans. (20)
  16062.  
  16063.     This behavior was surprising.  It seemed that the Update operation in step8 should have returned a status of 85 - File In Use.  However, it was confirmed through development that this is proper behavior.  So an UPDATE will wait for a file to be released from a transaction and an 85 will not be returned.
  16064.  
  16065. SOLUTION
  16066.  
  16067.     NA
  16068.  
  16069.  
  16070.  
  16071.  
  16072. FYI:    Using NetWare Utilities Under Windows 3.0a
  16073.                                      FYI
  16074.  
  16075. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16076.  
  16077.           TITLE:    Using NetWare Utilities Under Windows 3.0a
  16078.     DOCUMENT ID:    FYI.A.2915
  16079.            DATE:    15NOV91
  16080.         PRODUCT:    Network C for Windows
  16081. PRODUCT VERSION:    v1.22
  16082.      SUPERSEDES:    NA
  16083.  
  16084.         SYMPTOM:    NA
  16085.  
  16086. ISSUE/PROBLEM
  16087.  
  16088.     The following is taken from the DOS/Windows update manual, page 12-13.
  16089.  
  16090.     NetWare Utilities Support:
  16091.     Windows support provided by Novell is intended to support the use of the Windows environment and Windows-based applications on a NetWare network. Because Windows takes control of the system, any utilities not specifically written for the Windows environment may not function correctly.  Therefore, when using the NetWare utilities provided with the operating system, be aware that they may not function properly under Windows.  For best results, create a PIF file for the utility that you would like to use and run the utility as a PIF.
  16092.  
  16093. SOLUTION
  16094.  
  16095.     NA
  16096.  
  16097.  
  16098.  
  16099.  
  16100. FYI:    Disabling the Swap file While in 386 Enhanced Mode
  16101.                                      FYI
  16102.  
  16103. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16104.  
  16105.           TITLE:    Disabling the Swap file While in 386 Enhanced Mode
  16106.     DOCUMENT ID:    FYI.A.2914
  16107.            DATE:    15NOV91
  16108.         PRODUCT:    Network C for Windows
  16109. PRODUCT VERSION:    v1.22
  16110.      SUPERSEDES:    NA
  16111.  
  16112.         SYMPTOM:    NA
  16113.  
  16114. ISSUE/PROBLEM
  16115.  
  16116.     You can disable swapping, virtual memory, while in enhanced mode by putting "paging=no" into your [386Enh] section of SYSTEM.INI. This may be helpful if you are running Windows from a network volume, and paging really slows down performance for you.
  16117.  
  16118. SOLUTION
  16119.  
  16120.     NA
  16121.  
  16122.  
  16123.  
  16124.  
  16125. FYI:    Windows 3.0a Hangs for No Reason in Enhanced Mode
  16126.                                      FYI
  16127.  
  16128. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16129.  
  16130.           TITLE:    Windows 3.0a Hangs for No Reason in Enhanced Mode
  16131.     DOCUMENT ID:    FYI.A.2913
  16132.            DATE:    15NOV91
  16133.         PRODUCT:    Network C for Windows
  16134. PRODUCT VERSION:    v1.22
  16135.      SUPERSEDES:    NA
  16136.  
  16137.         SYMPTOM:    NA
  16138.  
  16139. ISSUE/PROBLEM
  16140.  
  16141.     If you experience Windows hang ups for no reason in the Enhanced mode, try adding the line: emmexclude=A000-C7FF to the [386ENH] section of the SYSTEM.INI file.  Start Windows from a DOS prompt and see if that makes a difference.  This is an attempt to exclude the video range from use by Windows.  You might try excluding the entire address space (EMMExclude=A000-EFFF) for a test to see if Windows is trying to use some of the address space memory and running into a conflict.
  16142.  
  16143. SOLUTION
  16144.  
  16145.     NA
  16146.  
  16147.  
  16148.  
  16149.  
  16150. FYI:    Problems Running Windows 3.0a from Workstation
  16151.                                      FYI
  16152.  
  16153. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16154.  
  16155.           TITLE:    Problems Running Windows 3.0a from Workstation
  16156.     DOCUMENT ID:    FYI.A.2912
  16157.            DATE:    15NOV91
  16158.         PRODUCT:    Network C for Windows
  16159. PRODUCT VERSION:    v1.22
  16160.      SUPERSEDES:    NA
  16161.  
  16162.         SYMPTOM:    NA
  16163.  
  16164. ISSUE/PROBLEM
  16165.  
  16166.      1.    When running Windows DO NOT use IRQ 2 if you can help it.  (Especially with Arcnet).
  16167.  
  16168.      2.    If you have an Arcnet board, DO NO USE I/O addresses 2E0 AND 2F0.  Try 300 and 350.
  16169.  
  16170.      3.    Also, using address D000 with IRQ 2 has been known to cause hang ups w/Arcnet under Windows.
  16171.  
  16172.      4.    The VPICD.386 driver had some bugs, you will need to replace it with the new driver VPICDA.386 in your SYSTEM.INI.
  16173.  
  16174.      5.    When running the Windows setup program, use the parameters /N /I. This causes the hardware inspection to be bypassed.
  16175.  
  16176.      6.    Make sure to check the client SYSTEM.INI file for any weird files, like LAN MANAGER, for example.
  16177.  
  16178. SOLUTION
  16179.  
  16180.     NA
  16181.  
  16182.  
  16183.  
  16184.  
  16185. FYI:    How the XTRPATH Environment Variable is Used
  16186.                                      FYI
  16187.  
  16188. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16189.  
  16190.           TITLE:    How the XTRPATH Environment Variable is Used
  16191.     DOCUMENT ID:    FYI.A.1843
  16192.            DATE:    15NOV91
  16193.         PRODUCT:    Xtrieve PLUS
  16194. PRODUCT VERSION:    4.10
  16195.      SUPERSEDES:    NA
  16196.  
  16197.         SYMPTOM:    NA
  16198.  
  16199. ISSUE/PROBLEM
  16200.  
  16201.     The XTRPATH environment variable is used by appending the LOCATION (path & file name of the data file) that is specified in the dictionary. Therefore, if a full path name is given in the LOCATION name the XTRPATH variable is not used to find a file.  For example:
  16202.  
  16203.       LOCATION is defined as:   F:\DIR1\DIR2\DATAFILE.BTR
  16204.  
  16205.       and XTRPATH is set to:    F:\LEVEL1\LEVEL2\DATA
  16206.  
  16207.     and the datafile resides in F:\LEVEL1\LEVEL2\DATA.  Xtrieve will return a status 12 when that file is accessed because it is only looking at the path specified by the LOCATION.
  16208.     If only the filename is given in the LOCATION, then the filename is appended the directory(s) specified with XTRPATH when Xtrieve attempts to find the file.  For example:
  16209.  
  16210.        LOCATION is defined as:   BTRFILE.BTR
  16211.       and XTRPATH is set to:    F:\LEVEL1\LEVEL2\DATA
  16212.  
  16213.     would result in Xtrieve using F:\LEVEL1\LEVEL2\DATA\BTRFILE.BTR as the location of the data file.
  16214.  
  16215.     If a directory is specified in the LOCATION that does not start with a drive letter or a back slash, such as DIR1\DIR2\DATAFILE.BTR, then that path is appended to the directory(s) specified with XTRPATH to find the file.  So from our above example, if:
  16216.  
  16217.       LOCATION is defined as:   DIR1\DIR2\DATAFILE.BTR
  16218.       and XTRPATH is set to:    F:LEVEL1\LEVEL2\DATA
  16219.  
  16220.     the result would be:
  16221.  
  16222.     F:\LEVEL1\LEVEL2\DATA\DIR1\DIR2\DATAFILE.BTR.Remember, the server name, volume, directory path plus filename is bound by the 64 byte limitation.
  16223.  
  16224.     In summary:
  16225.  
  16226.     If the location name starts with a \ then XTRPATH is not used.  If the location name starts with a drive letter such as 'F:' then XTRPATH is not used.  So, if the location is a relative path...(doesn't start with \ or drive mapping) then the location is appended to XTRPATH.
  16227.  
  16228. SOLUTION
  16229.  
  16230.     NA
  16231.  
  16232.  
  16233.  
  16234.  
  16235. FYI:    NetBiosSubmit() Documentation Missing Code Return
  16236.                                      FYI
  16237.  
  16238. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16239.  
  16240.           TITLE:    NetBiosSubmit() Documentation Missing Code Return
  16241.     DOCUMENT ID:    FYI.A.2911
  16242.            DATE:    14NOV91
  16243.         PRODUCT:    NetWare OS/2 SDK
  16244. PRODUCT VERSION:    v1.3
  16245.      SUPERSEDES:    NA
  16246.  
  16247.         SYMPTOM:    NA
  16248.  
  16249. ISSUE/PROBLEM
  16250.  
  16251.     The NetBios section in the OS/2 API/SDK version 1.3a did not document the return error code 5, which means (ACCESS-DENIED).  When you call the function NetBios OPEN(), you must set the access-mode to EXCLUSIVE MODE and NOT REGULAR MODE, in order to perform a Receive-Any NCB command.
  16252.  
  16253. SOLUTION
  16254.  
  16255.     NA
  16256.  
  16257.  
  16258.  
  16259.  
  16260. FYI:    How to Get the Latest OS/2 2.0 Requester for NetWare
  16261.                                      FYI
  16262.  
  16263. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16264.  
  16265.           TITLE:    How to Get the Latest OS/2 2.0 Requester for NetWare
  16266.     DOCUMENT ID:    FYI.A.2910
  16267.            DATE:    14NOV91
  16268.         PRODUCT:    NetWare OS/2 SDK
  16269. PRODUCT VERSION:    2.0
  16270.      SUPERSEDES:    NA
  16271.  
  16272.         SYMPTOM:    NA
  16273.  
  16274. ISSUE/PROBLEM
  16275.  
  16276.     Any client who needs to get a copy of the latest OS/2 2.0 Requester needs to contact IBM and NOT Novell to get a copy of the Requester.  IBM has agreed to support the OS/2 2.0 Requester and they will be responsible for the BETA distribution.  Clients need to call their IBM contact and inquire about their "EARLY EXPERIENCE PROGRAM".  IBM has set up this program specially for any BETA customers.
  16277.  
  16278. SOLUTION
  16279.  
  16280.     NA
  16281.  
  16282.  
  16283.  
  16284.  
  16285. FYI:    Field Names with %
  16286.                                      FYI
  16287.  
  16288. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16289.  
  16290.           TITLE:    Field Names with %
  16291.     DOCUMENT ID:    FYI.A.1842
  16292.            DATE:    14NOV91
  16293.         PRODUCT:    Xtrieve PLUS
  16294. PRODUCT VERSION:    4.x
  16295.      SUPERSEDES:    NA
  16296.  
  16297.         SYMPTOM:    NA
  16298.  
  16299. ISSUE/PROBLEM
  16300.  
  16301.     Xtrieve allows percent signs as valid characters in field names.  An example would be field%name.  However, this may cause problems when using these fields in command files, which reference fields by placing a % at the beginning and end of the field name.
  16302.  
  16303. SOLUTION
  16304.  
  16305.     To get around the problem of XCFP truncating the field name, place a \ before the % in the field reference in the ASCII file that is to be converted to a command file.  For example:
  16306.  
  16307.                        %field\%name%
  16308.  
  16309.     XCFP will recognize that you are trying to use the % as part of the fieldname in this case.
  16310.  
  16311.  
  16312.  
  16313.  
  16314. FYI:    Queue Names & NetWare 286 & NetWare 386
  16315.                                      FYI
  16316.  
  16317. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16318.  
  16319.           TITLE:    Queue Names & NetWare 286 & NetWare 386
  16320.     DOCUMENT ID:    FYI.A.2641
  16321.            DATE:    13NOV91
  16322.         PRODUCT:    NetWare C Interface DOS
  16323. PRODUCT VERSION:    1.2
  16324.      SUPERSEDES:    NA
  16325.  
  16326.         SYMPTOM:    NA
  16327.  
  16328. ISSUE/PROBLEM
  16329.  
  16330.     The Job Queue names are different from NW 286 & NW386: ----------------------------------------------------------------
  16331.     For NetWare 386:
  16332.  
  16333.     Queue directory is:      queue_ID.QDR (as in bindery ID)
  16334.  
  16335.     Each Job entry is :     First 4 characters are 2 hex values for the Queue ID, but are swapped.  The next 4 characters represent the job number (right justified) and with the extension '.Q'.
  16336.  
  16337.       Example.
  16338.          Queue id = 08010015
  16339.          Directory is 08010015.QDR
  16340.          Jobs are in this directory will be: 01080001.Q  01080002.Q .etc
  16341.     -----------------------------------------------------------------
  16342.     For NetWare 286:
  16343.  
  16344.     Queue directory is: Queue_ID only.
  16345.     Each Job entry is:      Q$<last 2 hex values from the queue ID>.<job number>
  16346.  
  16347.       Example:
  16348.          Queue ID = 12345678
  16349.          Directory is: 12345678
  16350.          Job entries will be: Q$5678.001  Q$5678.002....etc
  16351.  
  16352. SOLUTION
  16353.  
  16354.     NA
  16355.  
  16356.  
  16357.  
  16358.  
  16359. FYI:    Btrieve Caching
  16360.                                      FYI
  16361.  
  16362. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16363.  
  16364.           TITLE:    Btrieve Caching
  16365.     DOCUMENT ID:    FYI.A.1847
  16366.            DATE:    13NOV91
  16367.         PRODUCT:    Btrieve
  16368. PRODUCT VERSION:    5.x
  16369.      SUPERSEDES:    NA
  16370.  
  16371.         SYMPTOM:    NA
  16372.  
  16373. ISSUE/PROBLEM
  16374.  
  16375.     Btrieve for DOS commits each write at the time of the write.  The cache is then flushed.  If the file is opened in accelerated mode the write is committed but the cache may not necessarily be flushed.
  16376.  
  16377.     A NetWare server follows the same type of procedure but once the commitment of the write goes to NetWare, the OS may cache the write before it goes to disk.  That, however, is determined by NetWare.
  16378.  
  16379. SOLUTION
  16380.  
  16381.     NA
  16382.  
  16383.  
  16384.  
  16385.  
  16386. FYI:    Kodiak Network Cards
  16387.                                      FYI
  16388.  
  16389. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16390.  
  16391.           TITLE:    Kodiak Network Cards
  16392.     DOCUMENT ID:    FYI.A.1846
  16393.            DATE:    13NOV91
  16394.         PRODUCT:    NetWare Btrieve NLM
  16395. PRODUCT VERSION:    5.15
  16396.      SUPERSEDES:    NA
  16397.  
  16398.         SYMPTOM:    Send Failure in Advertiser
  16399.  
  16400. ISSUE/PROBLEM
  16401.  
  16402.     Customer was receiving SEND FAILURE IN ADVERTISER errors.  When he switched his 16 bit Kodiak network card in his server to a Western Digital card the error went away.  We were not able to confirm any information about the card or drivers.  However, it is one more thing to check if this message appears.
  16403.  
  16404. SOLUTION
  16405.  
  16406.     NA
  16407.  
  16408.  
  16409.  
  16410.  
  16411. FYI:    How to Find Out if NetWare SQL is Loaded
  16412.                                      FYI
  16413.  
  16414. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16415.  
  16416.           TITLE:    How to Find Out if NetWare SQL is Loaded
  16417.     DOCUMENT ID:    FYI.A.1841
  16418.            DATE:    13NOV91
  16419.         PRODUCT:    NetWare SQL NLM
  16420. PRODUCT VERSION:    2.11
  16421.      SUPERSEDES:    NA
  16422.  
  16423.         SYMPTOM:    NA
  16424.  
  16425. ISSUE/PROBLEM
  16426.  
  16427.     How do you determine if NetWare SQL is loaded on a server without calling the xLogin or XQLLogin function?
  16428.  
  16429. SOLUTION
  16430.  
  16431.     Using the Network C for DOS APIs, you can write an application that does the following.  First, do a ReadPropertyValue to get the internet address for the server.  Next, convert the address to ASCII.  Call ScanBinderyObject using the Object_type = OT_FILE_SERVER, Object_ID = 4C, and the searchObjectType = *ASCIIADDRESS*.  If a non-zero value is returned, NetWare SQL is not loaded.  The *ASCIIADDRESS* must syntactically appear as shown here, in the searchObjecType variable. Prefix the address with a * and postfix the address with a *.
  16432.  
  16433.  
  16434.  
  16435.  
  16436. FYI:    Problem with AIO COMX
  16437.                                      FYI
  16438.  
  16439. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16440.  
  16441.           TITLE:    Problem with AIO COMX
  16442.     DOCUMENT ID:    FYI.A.004
  16443.            DATE:    13NOV91
  16444.         PRODUCT:    Network C for NLMs
  16445. PRODUCT VERSION:    1.01
  16446.      SUPERSEDES:    NA
  16447.  
  16448.         SYMPTOM:    NA
  16449.  
  16450. ISSUE/PROBLEM
  16451.  
  16452.     AIOCOMX refuses to LOAD when given a valid PORT= address, displaying "*Error*: Hardware for I/O address 0x%x does not exist."
  16453.  
  16454.     Due to problems where customers were not specifying correct I/O addresses for the COMx: ports they were trying to use, we put in code to check out the I/O address given for valid hardware.  If there was no asynchronous serial I/O chip present at that I/O address, we display the above message.
  16455.  
  16456.     We have received reports, however, that the method used to validate the I/O addresses is not working in every case.  There is at least one PC (AST Premium/386C 20 Mhz) that is using some variant of the 16450-type chips that does not pass the validity checks.
  16457.  
  16458. SOLUTION
  16459.  
  16460.     Currently, we are working up a patch for AIOCOMX.NLM. There will be no other work around until an updated NLM is available.
  16461.  
  16462.  
  16463.  
  16464.  
  16465. FYI:    Loading Problems with AIO ARTIC Port or Board
  16466.                                      FYI
  16467.  
  16468. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16469.  
  16470.           TITLE:    Loading Problems with AIO ARTIC Port or Board
  16471.     DOCUMENT ID:    FYI.A.003
  16472.            DATE:    13NOV91
  16473.         PRODUCT:    Network C for NLMs
  16474. PRODUCT VERSION:    1.0
  16475.      SUPERSEDES:    NA
  16476.  
  16477.         SYMPTOM:    NA
  16478.  
  16479. ISSUE/PROBLEM
  16480.  
  16481.     AIOARTIC cannot be reloaded after incorrect MEM=  attempt.
  16482.  
  16483.     It is possible for the customer to put an ARTIC board into a state where it cannot be reloaded until the PC is powered off and on, which resets the ARTIC board hardware.
  16484.  
  16485.     The default MEM= value for the 8KB memory window to be used by the AIOARTIC driver to access the ARTIC board is C0000.  This memory address is very good for PS/2's, but often very bad for any other kind of PC.  The problem is that for many PC's this address is the location of the EGA or VGA BIOS ROM code.  Reusing these addresses seems to discombobulate the hardware on the ARTIC board.
  16486.  
  16487.     If the customer has LOAD'ed the AIOARTIC.NLM with no parameters, or used the MEM=C0000 parameter value, then this could lock up the ARTIC board.  Even further LOAD attempts with correct parameters might not succeed.
  16488.  
  16489. SOLUTION
  16490.  
  16491.     The customer *must* find out what memory address ranges in high memory are free for use by new hardware.  We can suggest the use of utilities like QuarterDeck's Manifest to locate the 'holes' in high addresses.  The customer must supply the correct addresses on the MEM= parameters.
  16492.  
  16493.  
  16494.  
  16495.  
  16496. FYI:    Problem with AIO ARTIC Port or Board
  16497.                                      FYI
  16498.  
  16499. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16500.  
  16501.           TITLE:    Problem with AIO ARTIC Port or Board
  16502.     DOCUMENT ID:    FYI.A.002
  16503.            DATE:    13NOV91
  16504.         PRODUCT:    Network C for NLMs
  16505. PRODUCT VERSION:    1.0
  16506.      SUPERSEDES:    NA
  16507.  
  16508.         SYMPTOM:    AIOARTIC port or board hangs or becomes unusable.
  16509.  
  16510. ISSUE/PROBLEM
  16511.  
  16512.     It is possible for an ARTIC port or board to become unusable upon receiving an input character that is marked as 'in error'.  Such a character is one which has a parity error or framing error.  This can happen (and did) by simply changing data rates while input characters are being received.
  16513.  
  16514.     At the very least that port becomes unusable, and about 50% of the time the whole board locks up.  This situation persists, usually until the PC is powered off and then rebooted.  This is needed to completely reset and reload the code which goes into the ARTIC board itself.
  16515.  
  16516. SOLUTION
  16517.  
  16518.     A temporary patch is available which may be applied using DEBUG as follows:
  16519.          DEBUG   AIOARTIC.NLM        -- must be the 9/18/91 NLM
  16520.          -eA845  <CR>                -- should display the byte value EE
  16521.          -EA     <CR>                -- type in EA, then hit enter
  16522.          -w      <CR>                -- write the modified file
  16523.          -q      <CR>                -- DEBUG
  16524.  
  16525.     This applies only to the 9/18/91 version 1.01 of AIOARTIC.NLM.  Of course the customer should save a copy of the NLM first.  And of course they can use any other means of changing the A745th byte of the file from EE to EA (DEBUG offsets have 100 hex added to them).
  16526.  
  16527.     An updated AIOARTIC.NLM will be released at an unknown later date.
  16528.  
  16529.  
  16530.  
  16531.  
  16532. FYI:    Windows SDK 1.22 & Debugging ESR's
  16533.                                      FYI
  16534.  
  16535. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16536.  
  16537.           TITLE:    Windows SDK 1.22 & Debugging ESR's
  16538.     DOCUMENT ID:    FYI.A.2640
  16539.            DATE:    12NOV91
  16540.         PRODUCT:    Network C for Windows
  16541. PRODUCT VERSION:    1.22
  16542.      SUPERSEDES:    NA
  16543.  
  16544.         SYMPTOM:    NA
  16545.  
  16546. ISSUE/PROBLEM
  16547.  
  16548.     When trying to debug ESR's under Windows, you must use the MSC Windows Kernel Debugger. The symbol must be made public, and then linked with the MA and LI options.  Then load the debugger and press Ctrl-Alt-SysRq to enter the debugger.  Set the breakpoint, and go.
  16549.  
  16550.     You must have a MSC DDK for this effort.
  16551.  
  16552. SOLUTION
  16553.  
  16554.     NA
  16555.  
  16556.  
  16557.  
  16558.  
  16559. FYI:    QEMM & 386MAX with Windows 3.0
  16560.                                      FYI
  16561.  
  16562. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16563.  
  16564.           TITLE:    QEMM & 386MAX with Windows 3.0
  16565.     DOCUMENT ID:    FYI.A.2639
  16566.            DATE:    12NOV91
  16567.         PRODUCT:    Network C for Windows
  16568. PRODUCT VERSION:    1.22
  16569.      SUPERSEDES:    NA
  16570.  
  16571.         SYMPTOM:    NA
  16572.  
  16573. ISSUE/PROBLEM
  16574.  
  16575.     Unconfirmed FYI: You can use memory drivers other than HIMEM.SYS with Windows 3.0.
  16576.  
  16577.     QEMM   : must use version 6.01 or later, in STEALTH mode for it to work.
  16578.     386MAX : must use version 6.0 or later.
  16579.  
  16580.     If earlier versions are used, they will cause problems (hangs).
  16581.  
  16582. SOLUTION
  16583.  
  16584.     NA
  16585.  
  16586.  
  16587.  
  16588.  
  16589. FYI:    Where is xGetSessionID?
  16590.                                      FYI
  16591.  
  16592. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16593.  
  16594.           TITLE:    Where is xGetSessionID?
  16595.     DOCUMENT ID:    FYI.A.1840
  16596.            DATE:    12NOV91
  16597.         PRODUCT:    XQL for DOS
  16598. PRODUCT VERSION:    2.11
  16599.      SUPERSEDES:    NA
  16600.  
  16601.         SYMPTOM:    The prototype file for Windows is missing functions.
  16602.  
  16603. ISSUE/PROBLEM
  16604.  
  16605.     Why are xGetSessionID and xPutSessionID missing from the WXQLCALL.H file?
  16606.  
  16607. SOLUTION
  16608.  
  16609.     This was an oversight and will be corrected in the next release.
  16610.  
  16611.  
  16612.  
  16613.  
  16614. FYI:    Windows and XQL/NetWare SQL
  16615.                                      FYI
  16616.  
  16617. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16618.  
  16619.           TITLE:    Windows and XQL/NetWare SQL
  16620.     DOCUMENT ID:    FYI.A.1839
  16621.            DATE:    12NOV91
  16622.         PRODUCT:    XQL for DOS, NetWare SQL
  16623. PRODUCT VERSION:    2.11
  16624.      SUPERSEDES:    NA
  16625.  
  16626.         SYMPTOM:    NA
  16627.  
  16628. ISSUE/PROBLEM
  16629.  
  16630.     How many tasks can you run in Windows with XQL and NetWare SQL?  With the client version of XQL version 2.11 you can run only ONE task.  With NetWare SQL version 2.11 you can run up to 10 tasks.  The keyword tasks=10 must appear under the [nsreqDPMI] heading in WIN.INI in order to use 10 tasks.
  16631.  
  16632. SOLUTION
  16633.  
  16634.     NA
  16635.  
  16636.  
  16637.  
  16638.  
  16639. FYI:    Watcom Compiler and Different Debugger
  16640.                                      FYI
  16641.  
  16642. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16643.  
  16644.           TITLE:    Watcom Compiler and Different Debugger
  16645.     DOCUMENT ID:    FYI.A.3819
  16646.            DATE:    11NOV91
  16647.         PRODUCT:    Network C for NLMs
  16648. PRODUCT VERSION:    SDKb
  16649.      SUPERSEDES:    NA
  16650.  
  16651.         SYMPTOM:    NA
  16652.  
  16653. ISSUE/PROBLEM
  16654.  
  16655.     How can you use Microsoft's codeview debugger with a file compiled with the Watcom compiler?
  16656.  
  16657. SOLUTION
  16658.  
  16659.     A utility program is provided with WATCOM's C/386 that may be used to convert the debugging information present in object files created by WATCOM C/386 to various formats acceptable by other linkers and debuggers.  This utility is called WOMP (WATCOM Object Module Processor).  It comes with the 8.5 version of the compiler.
  16660.  
  16661.  
  16662.  
  16663.  
  16664. FYI:    BSERVER.VAP and NetWare's Watchdog Timeout
  16665.                                      FYI
  16666.  
  16667. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16668.  
  16669.           TITLE:    BSERVER.VAP and NetWare's Watchdog Timeout
  16670.     DOCUMENT ID:    FYI.A.3014
  16671.            DATE:    08NOV91
  16672.         PRODUCT:    Btrieve VAP
  16673. PRODUCT VERSION:    5.15
  16674.      SUPERSEDES:    NA
  16675.  
  16676.         SYMPTOM:    Status 3; files are closed by the watchdog for the active session when files are re-opened immediately after reboot.
  16677.  
  16678. ISSUE/PROBLEM
  16679.  
  16680.     Suppose a workstation is rebooted while it still has Btrieve files open, and then the same files are re-opened at that workstation.  If the watchdog had not yet cleared the files for the original session before they were re-opened, the files will be closed for both connections after a few minutes when the watchdog takes effect.  This usually results in Btrieve status 3 (File Not Open) being returned to the application.
  16681.  
  16682. SOLUTION
  16683.  
  16684.     This is a known problem in the VAP, and cannot be patched.  The work around is to wait until the watchdog closes the first session before restarting the application.
  16685.  
  16686.     Another possible work around is that the developer can add some logic to the application so that it opens the first file, and then tries to do a get first.  If the get first returns a status 3, then re-open all files and continue on.  If the get first returns a status 0, then all is well and the application can continue.
  16687.  
  16688.     This problem does not exist in the BTRIEVE NLM.
  16689.  
  16690.  
  16691.  
  16692.  
  16693. FYI:    Network C for NLM's and TLI
  16694.                                      FYI
  16695.  
  16696. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16697.  
  16698.           TITLE:    Network C for NLM's and TLI
  16699.     DOCUMENT ID:    FYI.A.2638
  16700.            DATE:    07NOV91
  16701.         PRODUCT:    Network C for NLMs
  16702. PRODUCT VERSION:    2.0
  16703.      SUPERSEDES:    NA
  16704.  
  16705.         SYMPTOM:    NA
  16706.  
  16707. ISSUE/PROBLEM
  16708.  
  16709.     Here is a quick reminder for using TLI API's.  When attempting to unbind a connection, make certain that the STATE of TLI for that handle is T_IDLE.  If not, 't_unbind' is called in the incorrect state and the API seems not to return.  (It is waiting on conditions that will never occur).
  16710.  
  16711.     This problem occurs in BLOCKING calls.  In this case the STATE is not T_IDLE.
  16712.  
  16713. SOLUTION
  16714.  
  16715.     Either use NON-blocking calls, or use t_nonblocking on a connection that BLOCKING was being used on.
  16716.  
  16717.  
  16718.  
  16719.  
  16720. FYI:    Network C for NLM's SDKa/b, Taskid & Semaphores
  16721.                                      FYI
  16722.  
  16723. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16724.  
  16725.           TITLE:    Network C for NLM's SDKa/b, Taskid & Semaphores
  16726.     DOCUMENT ID:    FYI.A.2637
  16727.            DATE:    07NOV91
  16728.         PRODUCT:    Network C for NLMs
  16729. PRODUCT VERSION:    2.0
  16730.      SUPERSEDES:    NA
  16731.  
  16732.         SYMPTOM:    NA
  16733.  
  16734. ISSUE/PROBLEM
  16735.  
  16736.     This is a reminder about network semaphores and how they are affected by task ID's.
  16737.  
  16738.     Network semaphores and task IDs must be controlled correctly to allow a semaphore to behave in the manner that a developer expects.  If the same semaphore is opened in several threads without obtaining a unique task ID, the semaphore will only be opened 1 time.  This poses some problems in that, closing the semaphores in these threads will undoubtedly result in 'unreleased resources' during unloading.  The first call to CloseSemaphore works, but the rest do not free their resources, since to them it is already taken care of.
  16739.  
  16740.     This is essentially a conceptual issue, not a bug.
  16741.  
  16742. SOLUTION
  16743.  
  16744.     Use 'SetCurrentTask(-1)' for each thread that will be opening the same semaphore.  This call will return a unique task ID that will then permit the semaphore to be opened in each thread, bumping up the open count, and allowing the CloseSemaphore to free up the semaphore resources.
  16745.  
  16746.     NOTE: Make certain the task ID resources are also released using theReturnBlockOfTasks(..) API, for each task ID allocated.
  16747.  
  16748.  
  16749.  
  16750.  
  16751. FYI:    Hanging Problems with Brequest 5.16 and DataLens Driver
  16752.                                      FYI
  16753.  
  16754. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16755.  
  16756.           TITLE:    Hanging Problems with Brequest 5.16 and DataLens Driver
  16757.     DOCUMENT ID:    FYI.A.1838
  16758.            DATE:    06NOV91
  16759.         PRODUCT:    NetWare SQL NLM
  16760. PRODUCT VERSION:    2.11
  16761.      SUPERSEDES:    NA
  16762.  
  16763.         SYMPTOM:    NetWare SQL DataLens Driver hangs when user chooses a path for the dictionaries with LOTUS 3.1.
  16764.  
  16765. ISSUE/PROBLEM
  16766.  
  16767.     Trying to access data in Lotus through the NetWare SQL DataLens Driver, with BREQUEST.EXE v5.16 (UNPATCHED), and NSREQ.EXE v2.11 loaded was causing Lotus to hang at the point where the user chooses the path for the dictionaries. When he unloaded BREQUEST and ran Lotus again, everything worked.  It definitely did not work with the unpatched BREQUEST.
  16768.  
  16769. SOLUTION
  16770.  
  16771.     NA
  16772.  
  16773.  
  16774.  
  16775.  
  16776. FYI:    OS/2 Documentation Correction
  16777.                                      FYI
  16778.  
  16779. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16780.  
  16781.           TITLE:    OS/2 Documentation Correction
  16782.     DOCUMENT ID:    FYI.A.3216
  16783.            DATE:    05NOV91
  16784.         PRODUCT:    NetWare OS/2 SDK
  16785. PRODUCT VERSION:    1.21
  16786.      SUPERSEDES:    NA
  16787.  
  16788.         SYMPTOM:    NA
  16789.  
  16790. ISSUE/PROBLEM
  16791.  
  16792.     The OS/2 documentation has quite a few calls that pass a pointer to a buffer and then as the next parameter pass the length of the buffer.  The documentation for these length parameters say the size of the buffer is returned.  So people are passing pointers to WORD instead of WORDSs.  This will cause a GPI.  For example:
  16793.  
  16794.            NWGetConnectionStatus(WORD connectionID,
  16795.                                  CONNECT_INFO far *connectionInfo,
  16796.                                  WORD connectionInfoBufferSize);
  16797.  
  16798.     The documentation says ConnectionInfoBufferSize returns a pointer to the size of the CONNECT_INFO data structure.  People read this and change the last parameter to be WORD *connectionInfoBufferSize, which causes a GPI.
  16799.  
  16800. SOLUTION
  16801.  
  16802.     The solution is quite simple.  In these cases, believe the prototype in the header file.  If it is declared a WORD pass it the size of the structure. In the above example it would be size of(CONNECT_INFO).
  16803.  
  16804.  
  16805.  
  16806.  
  16807. FYI:    Status Field in NLM ECB is Unsigned
  16808.                                      FYI
  16809.  
  16810. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16811.  
  16812.           TITLE:    Status Field in NLM ECB is Unsigned
  16813.     DOCUMENT ID:    FYI.A.3215
  16814.            DATE:    05NOV91
  16815.         PRODUCT:    Network C for NLMs
  16816. PRODUCT VERSION:    3.X
  16817.      SUPERSEDES:    NA
  16818.  
  16819.         SYMPTOM:    NA
  16820.  
  16821. ISSUE/PROBLEM
  16822.  
  16823.     The ECB in the NLM environment defines the Status flag as unsigned.  The documentation says that this field will be positive when the ECB is in use. It will be zero when not in use and no error has occurred.  When negative, it is no longer in use but an error has occurred.  So, people write code that says if ECB.status < 0 an error occurred.  This will never be true since the field is defined as unsigned so it can never be negative.
  16824.  
  16825. SOLUTION
  16826.  
  16827.     All of the Error codes that can be passed back in the status field are above 0xFE00 in value.  If you compare ECB.status > 0xFE00, an error occurred.
  16828.  
  16829.  
  16830.  
  16831.  
  16832. FYI:    Using Your Mouse on a Non-Dedicated Server
  16833.                                      FYI
  16834.  
  16835. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16836.  
  16837.           TITLE:    Using Your Mouse on a Non-Dedicated Server
  16838.     DOCUMENT ID:    FYI.A.2908
  16839.            DATE:    05NOV91
  16840.         PRODUCT:    NetWare Operating System
  16841. PRODUCT VERSION:    2.2
  16842.      SUPERSEDES:    NA
  16843.  
  16844.         SYMPTOM:    NA
  16845.  
  16846. ISSUE/PROBLEM
  16847.  
  16848.     When you are running on a Non-dedicated file server or on a PS/2 model 50, 60 or 80 workstation, you will not be able to use your mouse port, regardless if you have a UPS unit or not.  You will need to download the file MOUSE.ZIP from NetWire in NOVA library 8.  This file fixes the mouse problems on PS/2 model 50/60/80.  Load this patch after loading the workstation shell, then run the mouse driver file and the default file.  When running on a non-dedicated file server, load this patch after running the operating system and loading the shell.  This patch was tested with the IBM Personal System/2 mouse driver and the Microsoft mouse driver v6.11.  The Microsoft mouse driver will put a non-dedicated file server into console mode; just type "DOS" and the driver will finish loading and will be available for use.
  16849.  
  16850. SOLUTION
  16851.  
  16852.     NA
  16853.  
  16854.  
  16855.  
  16856.  
  16857. FYI:    WVIDEO Cannot Find Server
  16858.                                      FYI
  16859.  
  16860. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16861.  
  16862.           TITLE:    WVIDEO Cannot Find Server
  16863.     DOCUMENT ID:    FYI.A.3125
  16864.            DATE:    04NOV91
  16865.         PRODUCT:    Network C for NLMs
  16866. PRODUCT VERSION:    SDKb
  16867.      SUPERSEDES:    NA
  16868.  
  16869.         SYMPTOM:    NA
  16870.  
  16871. ISSUE/PROBLEM
  16872.  
  16873.     When using WVIDEO, it prints the message "no such server" when trying to connect to the NOVSERV NLM.
  16874.  
  16875. SOLUTION
  16876.  
  16877.     Download an updated version of NOVSERV, from NOVDEV library 7.  It is called NOVSRV.ZIP.
  16878.  
  16879.  
  16880.  
  16881.  
  16882. FYI:    ScanTrustees() Documentation
  16883.                                      FYI
  16884.  
  16885. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16886.  
  16887.           TITLE:    ScanTrustees() Documentation
  16888.     DOCUMENT ID:    FYI.A.3818
  16889.            DATE:    31OCT91
  16890.         PRODUCT:    Network C for NLMs
  16891. PRODUCT VERSION:    SDKb
  16892.      SUPERSEDES:    NA
  16893.  
  16894.         SYMPTOM:    NA
  16895.  
  16896. ISSUE/PROBLEM
  16897.  
  16898.     Parameters of the ScanTrustees API in the Network C for NLMs SDK is not clearly documented. What are the startingOffset, vectorSize, trusteeVector, and maskVector parameters?
  16899.  
  16900. SOLUTION
  16901.  
  16902.      1.    The startingOffset is the number of trustees that will be skipped.  So, if you need information starting from the first trustee, starting Offset should be 0.
  16903.  
  16904.      2.    VectorSize is the length of the array trusteeVector.
  16905.  
  16906.      3.    TrusteeVector is an array of LONG.  ScanTrustees() returns the Trustee IDs in this array.
  16907.  
  16908.      4.    MaskVector is an array of WORDS.  ScanTrustees returns the Trustee Rights of the corresponding Trustees from the trustee Vector.
  16909.  
  16910.  
  16911.  
  16912.  
  16913. FYI:    Multiple IPX/SPX Sessions under Desqview
  16914.                                      FYI
  16915.  
  16916. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16917.  
  16918.           TITLE:    Multiple IPX/SPX Sessions under Desqview
  16919.     DOCUMENT ID:    FYI.A.3342
  16920.            DATE:    29OCT91
  16921.         PRODUCT:    NetWare C Interface DOS
  16922. PRODUCT VERSION:    1.20
  16923.      SUPERSEDES:    NA
  16924.  
  16925.         SYMPTOM:    NA
  16926.  
  16927. ISSUE/PROBLEM
  16928.  
  16929.     What does a developer do to run multiple IPX/SPX sessions under Desqview? This applies to Btrieve, NLM or VAP, or any other IPX/SPX application.
  16930.  
  16931. SOLUTION
  16932.  
  16933.     The developer needs to obtain the EMMNET3.DRV file from the Desqview bulletin board.  TBMI/TASKID can NOT be used in the Desqview environment: it is Windows specific.
  16934.  
  16935.  
  16936.  
  16937.  
  16938. FYI:    Btrieve for DOS and AT&T Star group
  16939.                                      FYI
  16940.  
  16941. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16942.  
  16943.           TITLE:    Btrieve for DOS and AT&T Star group
  16944.     DOCUMENT ID:    FYI.A.3013
  16945.            DATE:    29OCT91
  16946.         PRODUCT:    Btrieve for DOS
  16947. PRODUCT VERSION:    5.10a
  16948.      SUPERSEDES:    NA
  16949.  
  16950.         SYMPTOM:    Update and insert return status 2 on an AT&T Star group network.
  16951.  
  16952. ISSUE/PROBLEM
  16953.  
  16954.     There is a problem running Btrieve for DOS version 5.10a on an AT&T Star group network.  Reading records works without any problem. However, any writes to a Btrieve file cause the file to get corrupted.
  16955.  
  16956.     The customer copied a local Btrieve file to the file server and used BSIM.EXE to test this.  During the test, he was the only person accessing the file.
  16957.  
  16958.     He was able to retrieve the records, but, update and insert operations returns status 2.  After the update/insert operation, the file was not accessible:Butil -Recover and Butil -Save returned status 2.
  16959.  
  16960. SOLUTION
  16961.  
  16962.     NA
  16963.  
  16964.  
  16965.  
  16966.  
  16967. FYI:    XQLPO and Sharing Violation
  16968.                                      FYI
  16969.  
  16970. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16971.  
  16972.           TITLE:    XQLPO and Sharing Violation
  16973.     DOCUMENT ID:    FYI.A.3011
  16974.            DATE:    29OCT91
  16975.         PRODUCT:    XQL
  16976. PRODUCT VERSION:    2.01
  16977.      SUPERSEDES:    NA
  16978.  
  16979.         SYMPTOM:    "Sharing Violation" error when loading XQLPO v2.01.
  16980.  
  16981. ISSUE/PROBLEM
  16982.  
  16983.     On some networks, loading XQLPO version 2.01 from two workstations will return a Sharing Violation error on the second workstation.  The work around is to change the attribute of XQLPO.EXE to READ ONLY.  This problem does not exist in XQLPO version 2.11.  This is because XQLPO 2.11 uses Sharable, Read Only for the open mode.
  16984.  
  16985. SOLUTION
  16986.  
  16987.     Either use version 2.11 or flag XQLPO.EXE as a READ ONLY file.
  16988.  
  16989.  
  16990.  
  16991.  
  16992. FYI:    Retrieving Heading Information for Fields through XQLM Calls
  16993.                                      FYI
  16994.  
  16995. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  16996.  
  16997.           TITLE:    Retrieving Heading Information for Fields through XQLM Calls
  16998.     DOCUMENT ID:    FYI.A.1117
  16999.            DATE:    29OCT91
  17000.         PRODUCT:    Xtrieve PLUS
  17001. PRODUCT VERSION:    4.10
  17002.      SUPERSEDES:    NA
  17003.  
  17004.         SYMPTOM:    NA
  17005.  
  17006. ISSUE/PROBLEM
  17007.  
  17008.     If you define a heading for a field through Xtrieve PLUS, you cannot recall any of that information from the manager level of XQL.  Specifically, a developer wanted to know if he could retrieve such information with an SQL statement (XQLI), and we found that this is not possible.
  17009.  
  17010. SOLUTION
  17011.  
  17012.     The only way to retrieve field heading information at the XQL API level is through the primitive xDDAttr.
  17013.  
  17014.  
  17015.  
  17016.  
  17017.  
  17018.  
  17019. FYI:    Optionally Loading Btrieve with Xtrieve PLUS 4.10
  17020.                                      FYI
  17021.  
  17022. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17023.  
  17024.           TITLE:    Optionally Loading Btrieve with Xtrieve PLUS 4.10
  17025.     DOCUMENT ID:    FYI.A.1116
  17026.            DATE:    29OCT91
  17027.         PRODUCT:    Xtrieve PLUS
  17028. PRODUCT VERSION:    4.10
  17029.      SUPERSEDES:    8/16/91
  17030.  
  17031.         SYMPTOM:    NA
  17032.  
  17033. ISSUE/PROBLEM
  17034.  
  17035.     The following warnings may occur under Xtrieve PLUS v4.10 if Btrieve is not loaded at the workstation prior to starting Xtrieve.
  17036.  
  17037.     Since Xtrieve makes Btrieve calls to access the XTRIEVE.HLP file, you must have Btrieve loaded before getting into Xtrieve.  If Btrieve is not loaded, you will get the message: 'Help file is not online.'
  17038.  
  17039.     If you try to recall a report layout, run a command file, or translate to DIF, SDF, or UNF, you will get a message stating
  17040.  
  17041.      'Unable to open XXX.MEN, status = nn. Using system file names'
  17042.  
  17043.     if Btrieve was not loaded prior to loading Xtrieve.  The .MEN files are Btrieve files, and contain the DOS location name of the files within the menu, as well as the descriptive file name provided by the user who created the file.  Since Xtrieve is using Btrieve calls to access these files, Btrieve must be loaded.  If Btrieve is NOT loaded, you will be able to recall the command file, report layout, or translated file, but instead of choosing the descriptive file name, you will have to choose from a list of system file names (the DOS location name specified for the file).
  17044.  
  17045. SOLUTION
  17046.  
  17047.     NA
  17048.  
  17049.  
  17050.  
  17051.  
  17052. FYI:    Xtrieve Load Problem
  17053.                                      FYI
  17054.  
  17055. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17056.  
  17057.           TITLE:    Xtrieve Load Problem
  17058.     DOCUMENT ID:    FYI.A.1115
  17059.            DATE:    29OCT91
  17060.         PRODUCT:    Xtrieve PLUS
  17061. PRODUCT VERSION:    4.10
  17062.      SUPERSEDES:    NA
  17063.  
  17064.         SYMPTOM:    NA
  17065.  
  17066. ISSUE/PROBLEM
  17067.  
  17068.     Problem is: after loading Xtrieve, the sign-on screen appears, followed by text printing on the screen and the machine beeps.
  17069.  
  17070. SOLUTION
  17071.  
  17072.     The problem may be that the environment variable XTRTMP is set to a directory where you do not have create and write file access.  You must set XTRTMP= to a directory where you definitely have these rights.
  17073.  
  17074.  
  17075.  
  17076.  
  17077. FYI:    ScanDirectoryForTrustees
  17078.                                      FYI
  17079.  
  17080. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17081.  
  17082.           TITLE:    ScanDirectoryForTrustees
  17083.     DOCUMENT ID:    FYI.A.3346
  17084.            DATE:    28OCT91
  17085.         PRODUCT:    NetWare System Calls
  17086. PRODUCT VERSION:    1.00
  17087.      SUPERSEDES:    NA
  17088.  
  17089.         SYMPTOM:    No trustee information returned.
  17090.  
  17091. ISSUE/PROBLEM
  17092.  
  17093.     The NetWare System Calls - DOS, version 1.00, states that a sequence number of zero needs to be specified the first time this API is called.
  17094.  
  17095. SOLUTION
  17096.  
  17097.     Pass a one as the initial sequence number.
  17098.  
  17099.  
  17100.  
  17101.  
  17102. FYI:    Logical Fields in NetWare SQL
  17103.                                      FYI
  17104.  
  17105. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17106.  
  17107.           TITLE:    Logical Fields in NetWare SQL
  17108.     DOCUMENT ID:    FYI.A.1837
  17109.            DATE:    25OCT91
  17110.         PRODUCT:    NetWare SQL VAP
  17111. PRODUCT VERSION:    2.11
  17112.      SUPERSEDES:    NA
  17113.  
  17114.         SYMPTOM:    Logical fields not returning correct data values.
  17115.  
  17116. ISSUE/PROBLEM
  17117.  
  17118.     The definition of a logical field is to have any value other that 0 represent TRUE.  Only 0 is false.  It appears that the current implementation of the logical field is opposite of that.  If any value other than one is given for TRUE it is reported back as FALSE.
  17119.  
  17120. SOLUTION
  17121.  
  17122.     NA
  17123.  
  17124.  
  17125.  
  17126.  
  17127. FYI:    Bit Data Type in Xtrieve 4.10
  17128.                                      FYI
  17129.  
  17130. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17131.  
  17132.           TITLE:    Bit Data Type in Xtrieve 4.10
  17133.     DOCUMENT ID:    FYI.A.1836
  17134.            DATE:    25OCT91
  17135.         PRODUCT:    Xtrieve PLUS
  17136. PRODUCT VERSION:    4.10
  17137.      SUPERSEDES:    NA
  17138.  
  17139.         SYMPTOM:    Printing dictionary definition of bit data type field  increments the position of each field as if it were a BYTE.
  17140.  
  17141. ISSUE/PROBLEM
  17142.  
  17143.     If you print the dictionary definition of a Bit field in Xtrieve it will increment the position of each field as if it were a BYTE.  For example the definition of a file is as follows:
  17144.  
  17145.                Name        String 20
  17146.                Address     String 20
  17147.                flag1       BIT
  17148.                flag2       BIT
  17149.                flag3       BIT
  17150.  
  17151.     If you print this out with the Dictionary/Print option, Xtrieve will reportflag1 as starting in location 41, flag2 in position 42, and flag3 in position 43.  They should all be specified in location 41.
  17152.  
  17153. SOLUTION
  17154.  
  17155.     NA
  17156.  
  17157.  
  17158.  
  17159.  
  17160. FYI:    Documentation Error Regarding Block Sizes
  17161.                                      FYI
  17162.  
  17163. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17164.  
  17165.           TITLE:    Documentation Error Regarding Block Sizes
  17166.     DOCUMENT ID:    FYI.A.2636
  17167.            DATE:    23OCT91
  17168.         PRODUCT:    Network C for Windows
  17169. PRODUCT VERSION:    1.2x
  17170.      SUPERSEDES:    NA
  17171.  
  17172.         SYMPTOM:    NA
  17173.  
  17174. ISSUE/PROBLEM
  17175.  
  17176.     All the C interfaces contain documentation errors with regard to block sizes and NetWare 386(3.X).  For 3.X, the block size is configurable, so assuming a 4K block size is inaccurate.  4K blocks are being referenced in our documentation in such calls as Set/GetDirRestrictions.
  17177.  
  17178.     This is a minor detail but worth noting.  This assumption will force incorrect calculations for disk usage (restriction).
  17179.  
  17180. SOLUTION
  17181.  
  17182.     NA
  17183.  
  17184.  
  17185.  
  17186.  
  17187. FYI:    Problem with SAP API - QueryService
  17188.                                      FYI
  17189.  
  17190. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17191.  
  17192.           TITLE:    Problem with SAP API - QueryService
  17193.     DOCUMENT ID:    FYI.A.2635
  17194.            DATE:    22OCT91
  17195.         PRODUCT:    Network C for Windows
  17196. PRODUCT VERSION:    1.22
  17197.      SUPERSEDES:    NA
  17198.  
  17199.         SYMPTOM:    NA
  17200.  
  17201. ISSUE/PROBLEM
  17202.  
  17203.     The QueryService API has a minor problem in that it returns the NetWork and Node Address of the SAP server in swapped format when compared to that same code in the DOS environment.  This is an inconsistency and a minor inconvenience.
  17204.  
  17205. SOLUTION
  17206.  
  17207.     At this point you must swap the entire address.
  17208.  
  17209.  
  17210.  
  17211.  
  17212. FYI:    Windows and IPX/SPX Initialize Standard/Real MODE
  17213.                                      FYI
  17214.  
  17215. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17216.  
  17217.           TITLE:    Windows and IPX/SPX Initialize Standard/Real MODE
  17218.     DOCUMENT ID:    FYI.A.2634
  17219.            DATE:    22OCT91
  17220.         PRODUCT:    Network C for Windows
  17221. PRODUCT VERSION:    1.22
  17222.      SUPERSEDES:    NA
  17223.  
  17224.         SYMPTOM:    NA
  17225.  
  17226. ISSUE/PROBLEM
  17227.  
  17228.     If you are using communications in Standard and Real mode in Windows and using IPXInitialize/SPXInitialize, you may end up with error 240.  This means that you did not load TBMI prior to loading Windows.
  17229.  
  17230. SOLUTION
  17231.  
  17232.     Load TBMI...
  17233.  
  17234.  
  17235.  
  17236.  
  17237. FYI:    Lan Driver Statistics for NetWare 386
  17238.                                      FYI
  17239.  
  17240. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17241.  
  17242.           TITLE:    Lan Driver Statistics for NetWare 386
  17243.     DOCUMENT ID:    FYI.A.2633
  17244.            DATE:    22OCT91
  17245.         PRODUCT:    Network C for Windows
  17246. PRODUCT VERSION:    1.2x
  17247.      SUPERSEDES:    NA
  17248.  
  17249.         SYMPTOM:    NA
  17250.  
  17251. ISSUE/PROBLEM
  17252.  
  17253.     This actually pertains to all C-interfaces dealing with LAN driver statistics.  As the C interfaces currently stand, most LAN oriented calls allow only 4 LANs to be targeted (0,1,2,3).  This is OK for NetWare 286 but NetWare 386 allows up to 16 LAN's (including the Internal LAN (router) - Virtual IPX LAN Driver).  Making such calls as GetBridgeDriverConfiguration poses problems for NetWare 386.  Since LAN 0 is the virtual LAN, only 3 additional LAN boards may be targeted; the remaining ones cannot.
  17254.  
  17255.     For the most part, most NetWare 386 LAN's do not make use of large numbers of LAN cards in one server, but if they do and Diagnostics are important... we have a limitation.
  17256.  
  17257. SOLUTION
  17258.  
  17259.     NA
  17260.  
  17261.  
  17262.  
  17263.  
  17264. FYI:    Network C for NLM's SDKa/b & __8087 symbol
  17265.                                      FYI
  17266.  
  17267. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17268.  
  17269.           TITLE:    Network C for NLM's SDKa/b & __8087 symbol
  17270.     DOCUMENT ID:    FYI.A.2632
  17271.            DATE:    21OCT91
  17272.         PRODUCT:    Network C for NLMs
  17273. PRODUCT VERSION:    2.0a
  17274.      SUPERSEDES:    NA
  17275.  
  17276.         SYMPTOM:    NA
  17277.  
  17278. ISSUE/PROBLEM
  17279.  
  17280.     When using Floating point arithmetic (double variables), during the linking stage an error is reported stating that '__8087' is unresolved. Watcom apparently included this symbol in their compilation stages to force the inclusion of the module that determines if an 8087 chip is available. Technical Support for Watcom says this is the same module that defines '_8087'.  The symbol was stated not to have any other function but the inclusion of the module.
  17281.  
  17282. SOLUTION
  17283.  
  17284.     As a temporary solution, the variable '__8087' can be declared in your module.  For example, declare: 'int __8087'.
  17285.  
  17286.  
  17287.  
  17288.  
  17289. FYI:    Windows SDK & AFPOpenFileFork API
  17290.                                      FYI
  17291.  
  17292. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17293.  
  17294.           TITLE:    Windows SDK & AFPOpenFileFork API
  17295.     DOCUMENT ID:    FYI.A.2631
  17296.            DATE:    17OCT91
  17297.         PRODUCT:    Network C for Windows
  17298. PRODUCT VERSION:    1.22
  17299.      SUPERSEDES:    NA
  17300.  
  17301.         SYMPTOM:    NA
  17302.  
  17303. ISSUE/PROBLEM
  17304.  
  17305.     The documentation for the API AFPOpenFileFork is missing information regarding the NetWare Handle parameter (second to last parameter).  It NEEDS to be 6 bytes in length if one is to be returned, which is optional.  NULL is used when a value is not to be returned.  It is not immediately evident as to what a NetWare Handle should be declared as.  Looking into the C Interface-DOS, the example for this API shows it as a 6 byte value.  Examples at this point are not provided for the Windows SDK, except for the communication APIs.
  17306.  
  17307. SOLUTION
  17308.  
  17309.     NA
  17310.  
  17311.  
  17312.  
  17313.  
  17314. FYI:    Handling Multiple Datagrams under NetBIOS
  17315.                                      FYI
  17316.  
  17317. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17318.  
  17319.           TITLE:    Handling Multiple Datagrams under NetBIOS
  17320.     DOCUMENT ID:    FYI.A.1315
  17321.            DATE:    17OCT91
  17322.         PRODUCT:    NetWare C Interface DOS
  17323. PRODUCT VERSION:    1.2
  17324.      SUPERSEDES:    NA
  17325.         SYMPTOM:    Lost datagrams at a workstation.
  17326.  
  17327. ISSUE/PROBLEM
  17328.  
  17329.     Considerations must be taken into account when receiving multiple datagrams at a workstation.  If a Send Datagram is issued and there are no workstations which have issued a Receive Datagram and submitted a NetBIOS Control Block (NCB) prior to this, the datagram will be "lost" since there is no guaranteed delivery mechanism with datagrams.
  17330.  
  17331.     If only one NCB has been submitted by a call to Receive Datagram and a datagram is received, subsequent datagrams will be lost until another Receive Datagram is issued.  In this case, multiple NCBs must be submitted via several calls to Receive Datagram.  Unlike Novell's receive ECBs, NetBIOS' NCBs are used in the order they are submitted.  Therefore, if multiple messages are received, they will be placed in consecutive NCBs.
  17332.  
  17333. SOLUTION
  17334.  
  17335.     NA
  17336.  
  17337.  
  17338.  
  17339.  
  17340. FYI:    Brequest /D Parameter Documentation Errors
  17341.                                      FYI
  17342.  
  17343. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17344.  
  17345.           TITLE:    Brequest /D Parameter Documentation Errors
  17346.     DOCUMENT ID:    FYI.A.2341
  17347.            DATE:    16OCT91
  17348.         PRODUCT:    NetWare Btrieve
  17349. PRODUCT VERSION:    5.11, 5.15, and 5.16
  17350.      SUPERSEDES:    NA
  17351.  
  17352.         SYMPTOM:    NA
  17353.  
  17354. ISSUE/PROBLEM
  17355.  
  17356.     The documentation about the /D parameter is not accurate in any of the NetWare Btrieve Installation and Operation Manuals for the relevant versions of Brequest.
  17357.     The default value for the /D parameter is 4096 (not 2048!).
  17358.  
  17359.     The manuals also state that "The /D option increases the memory resident size of the requester by twice the number of bytes you specify plus 538 bytes." In actuality, raising the /D parameter only changes (increases OR decreases) the size of the requester by:
  17360.  
  17361.          (the number of bytes you specify - 4096).
  17362.  
  17363.     The overhead (of approximately 538 bytes) is a "given" no matter what /Dis specified, and therefore, does not need to participate in the equation.
  17364.  
  17365. SOLUTION
  17366.  
  17367.     NA
  17368.  
  17369.  
  17370.  
  17371.  
  17372. FYI:    Problem with API - AIOGetNextPortInfo
  17373.                                      FYI
  17374.  
  17375. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17376.  
  17377.           TITLE:    Problem with API - AIOGetNextPortInfo
  17378.     DOCUMENT ID:    FYI.A.001
  17379.            DATE:    16OCT91
  17380.         PRODUCT:    Network C for NLMs
  17381. PRODUCT VERSION:    1.0
  17382.      SUPERSEDES:    NA
  17383.  
  17384.         SYMPTOM:    NA
  17385.  
  17386. ISSUE/PROBLEM
  17387.  
  17388.     For multiple COM ports, AIOGetNextPortInfo does not work if you have made a prior call to AIOGetFirstPortInfo with wildcards passed in for both board Number and port Number.  With repeated calls to AIOGetNextPortInfo, AIO should look for every port across every board for that particular hardware Type.  However with the AIOGetNextPortInfo call, it returns the same information that you get with AIOGetFirstPortInfo.  Apparently AIO seems to be scanning the same board twice.
  17389.  
  17390. SOLUTION
  17391.  
  17392.     There is no permanent work around for this problem.  You could, however,hard code the values for the board Number.
  17393.  
  17394.  
  17395.  
  17396.  
  17397. FYI:    Checking Btrieve VAP Parameters
  17398.                                      FYI
  17399.  
  17400. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17401.  
  17402.           TITLE:    Checking Btrieve VAP Parameters
  17403.     DOCUMENT ID:    FYI.A.2340
  17404.            DATE:    15OCT91
  17405.         PRODUCT:    NetWare Btrieve VAP
  17406. PRODUCT VERSION:    5.10 and 5.15
  17407.      SUPERSEDES:    NA
  17408.  
  17409.         SYMPTOM:    NA
  17410.  
  17411. ISSUE/PROBLEM
  17412.  
  17413.     To check what load parameters have been set for the BSERVER.VAP, use DOS's DEBUG.COM:
  17414.  
  17415.      1.    At the command line, type 'DEBUG BSERVER.VAP'
  17416.  
  17417.      2.    At the '-' prompt, get the contents of the DS register by typing 'r ds <return>'
  17418.  
  17419.      3.    Something like this will be returned:
  17420.            DS 3310
  17421.            :
  17422.         The number will vary.  At the ':' prompt (shown above), type the result of adding 100 (hex) to the number returned from the DS register. In the above example, you would type '3410 <return>'.  Once you type in the number, you will be returned to the '-' prompt.
  17423.  
  17424.      4.    Dump the contents of the addresses starting at F100. At the '-' prompt, type 'd F100 <return>'
  17425.  
  17426.      5.    You will get a list of byte contents in hex and ASCII.  On the right side of your screen, you will see the ASCII, and it will start with 'EIM PARMS'.  Look for the parameters following that.
  17427.  
  17428. SOLUTION
  17429.  
  17430.     NA
  17431.  
  17432.  
  17433.  
  17434.  
  17435. FYI:    Multitasking with PC-MOS & Btrieve for DOS
  17436.                                      FYI
  17437.  
  17438. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17439.  
  17440.           TITLE:    Multitasking with PC-MOS & Btrieve for DOS
  17441.     DOCUMENT ID:    FYI.A.1026
  17442.            DATE:    11OCT91
  17443.         PRODUCT:    Btrieve for DOS
  17444. PRODUCT VERSION:    5.10a
  17445.      SUPERSEDES:    NA
  17446.  
  17447.         SYMPTOM:    Trying to use Btrieve for DOS in multiple partitions/tasks under PC-MOS may hang the workstation.
  17448.  
  17449. ISSUE/PROBLEM
  17450.  
  17451.     Trying to load Btrieve for DOS in multiple partitions/tasks under PC-MOS will hang the workstation unless you make the changes described below to the CONFIG.SYS file.  In addition, attempting to load Btrieve more than once in the same partition/task will hang the workstation, instead of returning a "Btrieve already loaded" message.
  17452.  
  17453. SOLUTION
  17454.  
  17455.     Place the following statements in the CONFIG.SYS file:
  17456.  
  17457.         "driver=$netbios.sys:"  this tells PC-MOS to emulate a network
  17458.  
  17459.     For each partition/task put:           "netname PutTaskName"
  17460.                                 the PutTaskName must be a unique name for each partition/task.
  17461.            "mos tsr on"                   this turns PC-MOS tsr support on
  17462.  
  17463.     Also, if you are running compilers within these different partitions/tasks,you must change the Btrieve interface file name to some unique name for each partition/task to use it properly.
  17464.  
  17465.  
  17466.  
  17467.  
  17468. FYI:    Old Btrieve Status 33
  17469.                                      FYI
  17470.  
  17471. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17472.  
  17473.           TITLE:    Old Btrieve Status 33
  17474.     DOCUMENT ID:    FYI.A.1025
  17475.            DATE:    11OCT91
  17476.         PRODUCT:    Btrieve NLM
  17477. PRODUCT VERSION:    5.1x
  17478.      SUPERSEDES:    NA
  17479.  
  17480.         SYMPTOM:    Status 33
  17481.  
  17482. ISSUE/PROBLEM
  17483.  
  17484.     A customer's application was receiving a status 33: "Same Drive Error - The file's extended partition cannot reside on the same logical drive as its primary partition." It turned out to be an application error related to how pointers were being passed, and not a valid status 33.  The status 33 error is no longer possible in the Btrieve NLM or VAP code so it is no longer included in the documentation.
  17485.  
  17486. SOLUTION
  17487.  
  17488.     NA
  17489.  
  17490.  
  17491.  
  17492.  
  17493. FYI:    Exporting from dBase to Xtrieve
  17494.                                      FYI
  17495.  
  17496. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17497.  
  17498.           TITLE:    Exporting from dBase to Xtrieve
  17499.     DOCUMENT ID:    FYI.A.1024
  17500.            DATE:    11OCT91
  17501.         PRODUCT:    Xtrieve PLUS
  17502. PRODUCT VERSION:    4.x
  17503.      SUPERSEDES:    NA
  17504.  
  17505.         SYMPTOM:    NA
  17506.  
  17507. ISSUE/PROBLEM
  17508.  
  17509.     For those making the move to Xtrieve from dBase there is a simple way to convert dBase data files to Xtrieve data files.  When exporting out of dBase, use the comma delimited format, which will translate into an Xtrieve view with the "from SDF" translate option.
  17510.  
  17511. SOLUTION
  17512.  
  17513.     NA
  17514.  
  17515.  
  17516.  
  17517.  
  17518. FYI:    DIRLPFX1 And TTSFIX Patches Won't Work Together
  17519.                                      FYI
  17520.  
  17521. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17522.  
  17523.           TITLE:    DIRLPFX1 And TTSFIX Patches Won't Work Together
  17524.    DOCUMENT ID#:    FYI.P.4306
  17525.            DATE:    09OCT91
  17526.         PRODUCT:    NetWare
  17527. PRODUCT VERSION:    3.11
  17528.      SUPERSEDES:    NA
  17529.  
  17530.         SYMPTOM:    Unable to load both TTSFIX and DIRLPFX1 at the same time
  17531.  
  17532. ISSUE/PROBLEM
  17533.  
  17534.     The versions of Patchman that are zipped with the above patches are not compatible, ie. you can't load DIRLPFX1 with the patchman that is zipped with TTSFIX and vice versa.
  17535.  
  17536. SOLUTION
  17537.  
  17538.     Get the latest versions of these patches in 311PTx.ZIP and replace PATCHMAN.NLM from the same file.  All pre serialization v3.11 patches will have to be replaced with those in 311PTx.ZIP.
  17539.  
  17540.  
  17541.  
  17542.  
  17543. FYI:    ScanUserSpaceRestrictions
  17544.                                      FYI
  17545.  
  17546. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17547.  
  17548.           TITLE:    ScanUserSpaceRestrictions
  17549.     DOCUMENT ID:    FYI.A.3345
  17550.            DATE:    09OCT91
  17551.         PRODUCT:    Network C for NLMs
  17552. PRODUCT VERSION:    2.0a
  17553.      SUPERSEDES:    NA
  17554.  
  17555.         SYMPTOM:    Server Reboot
  17556.  
  17557. ISSUE/PROBLEM
  17558.  
  17559.     The ScanUserSpaceRestrictions function can cause a server to reboot if it is called with a numberOfTrusteesToReturn less than twelve on a remote server. The reboot will occur if there are more trustees with restrictions on the volume being scanned than the number you pass in OfTrusteesToReturn element. The function always returns the number of trustees it finds, not the maximum number that was specified when the function was called.  The maximum number that can be returned is twelve.
  17560.  
  17561. SOLUTION
  17562.  
  17563.     Always set aside enough room to receive twelve trustees back when calling this function.
  17564.  
  17565.  
  17566.  
  17567.  
  17568. FYI:    Btrieve Status 29 & COBOL
  17569.                                      FYI
  17570.  
  17571. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17572.  
  17573.           TITLE:    Btrieve Status 29 & COBOL
  17574.     DOCUMENT ID:    FYI.A.2339
  17575.            DATE:    09OCT91
  17576.         PRODUCT:    Btrieve
  17577. PRODUCT VERSION:    All versions
  17578.      SUPERSEDES:    NA
  17579.  
  17580.         SYMPTOM:    Status 29 on a Btrieve Create, using Realia COBOL
  17581.  
  17582. ISSUE/PROBLEM
  17583.  
  17584.     Using some versions of COBOL (for example, Realia version 3), an integer must be defined as COMP-5.  The integer is allotted 2 bytes by the compiler, which is fine for most fields of the data buffer used for a Btrieve Create.  The problem arises in the Key Specifications structure, where the extended key types and null values are declared.  They each must be 1 byte long, so an easy way out is to declare the two fields as one 2-byte integer, and then set them to null.  But what if you also want to have a null value or an extended key type for your key(s)?
  17585.  
  17586. SOLUTION
  17587.  
  17588.     The following example shows the process required to create a file with a Zstring key and a null value of 20hex (the other flags are not important because they are easy to control):
  17589.  
  17590.      0.    Remember to assign the appropriate value as a key flag (add decimal 256 to indicate an extended key type for that key).
  17591.  
  17592.      1.    View the extended key type (EKT) and null value (NV) bytes as they would appear in memory:
  17593.  
  17594.           byte n: 0B hex  (contains the EKT: when the value is converted to
  17595.                            decimal, it would be 11, to indicate Zstrings)
  17596.           byte n+1: 20 hex  (contains the NV: when the value is converted to
  17597.                            decimal, it equals 32)
  17598.  
  17599.      2.    Since you have declared the EKT and NV bytes as a single 2-byte integer with COMP-5, the compiler will switch the bytes. So you must switch the bytes manually to compensate:
  17600.  
  17601.           byte n: 20 hex
  17602.           byte n+1: 0B hex
  17603.  
  17604.      3.    Figure out what decimal number corresponds to 200Bhex (it is 8203), and assign that to the integer corresponding to the EKT and NV flags.
  17605.  
  17606.  
  17607.  
  17608.  
  17609. FYI:    TURCBTRV.C works fine with C++
  17610.                                      FYI
  17611.  
  17612. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17613.  
  17614.           TITLE:    TURCBTRV.C works fine with C++
  17615.     DOCUMENT ID:    FYI.A.1629
  17616.            DATE:    08OCT91
  17617.         PRODUCT:    Btrieve for DOS
  17618. PRODUCT VERSION:    5.10a
  17619.      SUPERSEDES:    NA
  17620.  
  17621.         SYMPTOM:    NA
  17622.  
  17623. ISSUE/PROBLEM
  17624.  
  17625.     Does the TURCBTRV.C interface that ships with Btrieve for DOS v5.10a work with Turbo C++ v1.0 and Borland C++ v2.0?
  17626.  
  17627. SOLUTION
  17628.  
  17629.     Yes! It has NOT been "officially" tested, but it does work.  However,when compiling under the C++ mode of these compilers, a warning will be produced stating that the function declaration is obsolete.  This is because the parameters are declared after the function declaration (before the opening brace) instead of within the function declaration, and this is no longer ANSI standard.  Borland's compilers still accept this declaration in the current versions, so this is not a problem.  The TURCBTRV.C that ships with Btrieve for DOS v5.10a has 5115 bytes and is dated 2/10/90.
  17630.  
  17631.  
  17632.  
  17633.  
  17634. FYI:    Another Cause of Status 30
  17635.                                      FYI
  17636.  
  17637. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17638.  
  17639.           TITLE:    Another Cause of Status 30
  17640.     DOCUMENT ID:    FYI.A.2338
  17641.            DATE:    04OCT91
  17642.         PRODUCT:    Btrieve
  17643. PRODUCT VERSION:    All versions
  17644.      SUPERSEDES:    NA
  17645.  
  17646.         SYMPTOM:    Status 30
  17647.  
  17648. ISSUE/PROBLEM
  17649.  
  17650.     A status 30 on an open call may not mean the Btrieve file is corrupt.  It may indicate that the file was created with an earlier version of Btrieve than the version currently attempting to open the file.  For instance, suppose you have a file created with version 5.10 of the Btrieve NLM, using compression and autoincrement keys (both introduced in version 5.00 of Btrieve).  Attempting to open this file with Btrieve for DOS 3.1 Networks version 4.11b will result in a status 30.
  17651.  
  17652. SOLUTION
  17653.  
  17654.     NA
  17655.  
  17656.  
  17657.  
  17658.  
  17659. FYI:    DOS function 5FH, Subfunctions 03H and 04H
  17660.                                      FYI
  17661.  
  17662. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17663.  
  17664.           TITLE:    DOS function 5FH, Subfunctions 03H and 04H
  17665.     DOCUMENT ID:    FYI.A.1523
  17666.            DATE:    02OCT91
  17667.         PRODUCT:    NetWare Shell
  17668. PRODUCT VERSION:    NA
  17669.      SUPERSEDES:    NA
  17670.  
  17671.         SYMPTOM:    NA
  17672.  
  17673. ISSUE/PROBLEM
  17674.  
  17675.     DOS Function 5FH Subfunction 03H, Make Assign-List Entry, will map a drive to the specified path.  The drive will be mapped as a fake root. You can map a drive to the default server or any other server you are logged into.  If you try to map a drive to a server you are not attached to, a status 3, invalid path, will be returned.  You can map a drive providing standard Novell syntax for the path, SERVER/VOL:DIR\DIR, VOL:DIR\DIR, or DIR\DIR.
  17676.  
  17677.     DOS Function 5FH Subfunction 04H, Cancel Assign-List Entry, will delete the drive.
  17678.  
  17679. SOLUTION
  17680.  
  17681.     NA
  17682.  
  17683.  
  17684.  
  17685.  
  17686. FYI:    DIAGFIX.NLM and GetSpecificNetworkInfo
  17687.                                      FYI
  17688.  
  17689. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17690.  
  17691.           TITLE:    DIAGFIX.NLM and GetSpecificNetworkInfo
  17692.     DOCUMENT ID:    FYI.A.1633
  17693.            DATE:    01OCT91
  17694.         PRODUCT:    C Interface Diagnostics
  17695. PRODUCT VERSION:    NetWare 3.10
  17696.      SUPERSEDES:    NA
  17697.  
  17698.         SYMPTOM:    Break at XXXXXXXX because of INT 3 breakpoint
  17699.  
  17700. ISSUE/PROBLEM
  17701.  
  17702.     GetSpecificNetworkInfo causes the server to break because of INT 3 interrupt when the DIAGFIX.NLM is loaded on a NW 3.10 server.
  17703.  
  17704. SOLUTION
  17705.  
  17706.     The current version of DIAGFIX.NLM, dated 10/1/91 (911001), fixes the problem.
  17707.  
  17708.  
  17709.  
  17710.  
  17711. FYI:    New Accounting Types for NetWare 2.2
  17712.                                      FYI
  17713.  
  17714. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17715.  
  17716.           TITLE:    New Accounting Types for NetWare 2.2
  17717.     DOCUMENT ID:    FYI.A.1522
  17718.            DATE:    01OCT91
  17719.         PRODUCT:    NetWare SI Tech Overview
  17720. PRODUCT VERSION:    2.2
  17721.      SUPERSEDES:    NA
  17722.  
  17723.         SYMPTOM:    NA
  17724.  
  17725. ISSUE/PROBLEM
  17726.  
  17727.     Three new types of accounting records are being written to the NET$ACCT.DAT file when using NetWare version 2.2.  The following is a layout for each of the new record types.
  17728.  
  17729.                 ;Begin change here 5-21-90, RCA
  17730.  
  17731.                 ; Type 7 -- Rights change note
  17732.     endt6       db      00H, endt7 - t7
  17733.     t7          dw      0700H            ;Record type (Hi-Lo)
  17734.                 db      endn7 - n7       ;# of fields
  17735.     n7          db      T_TEXT           ;Name of user changing rights
  17736.                 db      T_TEXT           ;Name of user who owns object changed
  17737.                 db      T_RIGHTS         ;Current rights
  17738.                 db      T_TEXT           ;Path of object changed endn7
  17739.                 db      endt7 - s7       ;length of string
  17740.     s7          db      "%s changed rights on object owned by %s to %s."
  17741.                 db      "  Object changed was %s."
  17742.  
  17743.                 ; Type 8 -- Server up note
  17744.     endt7       db      00H, endt8 - t8
  17745.     t8          dw      0800H            ;Record type (Hi-Lo)
  17746.                 db      0                ;# of fields
  17747.                 db      endt8 - s8       ;length of string
  17748.     s8          db      "Server booted."
  17749.  
  17750.                 ; Type 9 -- Server down note
  17751.     endt8       db      00H, endt9 - t9
  17752.     t9          dw      0900H            ;Record type (Hi-Lo)
  17753.                 db      0                ;# of fields
  17754.                 db      endt9 - s9       ;length of string
  17755.     s9          db      "Server downed."
  17756.  
  17757.                 ;End change here 5-21-90, RCA
  17758.  
  17759. SOLUTION
  17760.  
  17761.     NA
  17762.  
  17763.  
  17764.  
  17765.  
  17766. FYI:    XQL and Turbo Pascal For Windows
  17767.                                      FYI
  17768.  
  17769. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17770.  
  17771.           TITLE:    XQL and Turbo Pascal For Windows
  17772.    DOCUMENT ID#:    FYI.A.1234
  17773.            DATE:    01OCT91
  17774.         PRODUCT:    XQL 2.x & Windows 3.x
  17775. PRODUCT VERSION:
  17776.      SUPERSEDES:    N/A
  17777.         SYMPTOM:
  17778.  
  17779. ISSUE/PROBLEM
  17780.  
  17781.     Below are example definitions of Windows XQL calls using Turbo Pascal for Windows.  Included with the XQL for Windows Requestor DLL package is a file, XQLCALLS.H, which contains all the C function prototypes for all XQL calls.  Calling these functions from Turbo Pascal, as you can see below, is a matter of converting the function prototypes from C format to Pascal format.
  17782.  
  17783.     A simple rule to follow is if the C data type begins with LP (LongPointer), use the VAR keyword in front of the parm definition.  If LP doesn't precede the C data type, do not use the VAR keyword.
  17784.  
  17785.      /********************* XQLLogin ****************************/
  17786.      /* C Version */
  17787.      extern int far pascal XQLLogin (LPBYTE,
  17788.                                      LPBYTE,
  17789.                                      LPBYTE,
  17790.                                      LPBYTE,
  17791.                                      LPBYTE,
  17792.                                      WORD);
  17793.  
  17794.      /* Pascal Version */
  17795.      Function XQLLogin  (var  parm1: Byte;
  17796.                          var  parm2: Byte;
  17797.                          var  parm3: Byte;
  17798.                          var  parm4: Byte;
  17799.                               parm5: Word): integer; far;
  17800.                             external 'WXQLCALL';
  17801.  
  17802.  
  17803.      /********************** XQLCompile ************************/
  17804.      /* C Version */
  17805.      extern int far pascal XQLCompile (WORD,
  17806.                                        LPWORD,
  17807.                                        LPBYTE);
  17808.  
  17809.      /* Pascal version */
  17810.      Function XQLCompile (    parm1: Word;
  17811.                           var parm2: Word;
  17812.                           var parm3: Byte): integer; far;
  17813.                             external 'WXQLCALL';
  17814.  
  17815.      /*************************xCompute**************************/
  17816.      /* C Version */
  17817.      extern int far pascal xCompute (WORD,
  17818.                                      LPBYTE,
  17819.                                      WORD,
  17820.                                      WORD,
  17821.                                      WORD,
  17822.                                      LPWORD,
  17823.                                      LPBYTE);
  17824.  
  17825.  
  17826.      /* Pascal Version */
  17827.      Function xCompute    (    parm1: Word;
  17828.                           var parm2: Byte;
  17829.                               parm3: Word;
  17830.                               parm4: Word;
  17831.                           var parm5: Word;
  17832.                           var parm6: Byte): integer; far;
  17833.                            external 'WXQLCALL';
  17834.  
  17835.  
  17836.  
  17837.  
  17838. FYI:    NetWare Lite and the Novell APIs
  17839.                                      FYI
  17840.  
  17841. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17842.  
  17843.           TITLE:    NetWare Lite and the Novell APIs
  17844.     DOCUMENT ID:    FYI.A.3344
  17845.            DATE:    26SEP91
  17846.         PRODUCT:    NetWare C Interface DOS, NetWare System Calls
  17847. PRODUCT VERSION:    1.20
  17848.      SUPERSEDES:    NA
  17849.  
  17850.         SYMPTOM:    NA
  17851.  
  17852. ISSUE/PROBLEM
  17853.  
  17854.     There has been some confusion as to what APIs are supported by NetWare Lite. NetWare Lite is a peer-to-peer operating system.  It does not support the Novell Core Protocol (NCP).  Therefore, none of the normal APIs are supported. However, Communication Services are supported.  This includes IPX, SPX and NetBios.
  17855.  
  17856. SOLUTION
  17857.  
  17858.     NA
  17859.  
  17860.  
  17861.  
  17862.  
  17863. FYI:    Btrieve File Corruption and the NetWare Shell
  17864.                                      FYI
  17865.  
  17866. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17867.  
  17868.           TITLE:    Btrieve File Corruption and the NetWare Shell
  17869.     DOCUMENT ID:    FYI.A.3341
  17870.            DATE:    26SEP91
  17871.         PRODUCT:    Btrieve for DOS
  17872. PRODUCT VERSION:    5.10a
  17873.      SUPERSEDES:    NA
  17874.  
  17875.         SYMPTOM:    Database Corruption / Invalid File Pointers
  17876.  
  17877. ISSUE/PROBLEM
  17878.  
  17879.     The NetWare 3.02 and 3.20 shells have a cache buffer bug that results in invalid file pointers and file corruption.  This has been especially true for database applications, such as Btrieve for DOS.  The normal symptom of this problem is status 2's after upgrading to NetWare 3.10 or 3.11.  The latest release of the shell, 3.22, corrects most of the cache corruption problems.
  17880.  
  17881.     There has been one instance of seeks returning an invalid EOF with the 3.22 shell.  This will be fixed in the next release of the shell.
  17882.  
  17883. SOLUTION
  17884.  
  17885.     Upgrade to the 3.22 shell.  This can be obtained from the NDD forum on Compuserve.  The name of the zip file is DOSUP3.ZIP.
  17886.  
  17887.  
  17888.  
  17889.  
  17890. FYI:    User List in BCONSOLE.NLM
  17891.                                      FYI
  17892.  
  17893. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17894.  
  17895.           TITLE:    User List in BCONSOLE.NLM
  17896.     DOCUMENT ID:    FYI.A.3012
  17897.            DATE:    26SEP91
  17898.         PRODUCT:    BCONSOLE.NLM
  17899. PRODUCT VERSION:    5.15
  17900.      SUPERSEDES:    NA
  17901.  
  17902.         SYMPTOM:    BCONSOLE.NLM does not show a user's open files when a  user is chosen from the Bconsole userlist option.
  17903.  
  17904. ISSUE/PROBLEM
  17905.  
  17906.     If multiple users are accessing Btrieve files, BCONSOLE.NLM will not show the list of files opened by a particular user when you choose a user-id from the BCONSOLE / USERLIST menu.  It shows file information for only one user; the lists for the rest of the users are blank.
  17907.  
  17908. SOLUTION
  17909.  
  17910.     It is a bug and has been source fixed for version 5.15a, which is available on NetWire's NOVA forum, Data Library 5.
  17911.  
  17912.  
  17913.  
  17914.  
  17915. FYI:    Btrieve for OS/2 Multi Child Processes
  17916.                                      FYI
  17917.  
  17918. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17919.  
  17920.           TITLE:    Btrieve for OS/2 Multi Child Processes
  17921.     DOCUMENT ID:    FYI.A.1845
  17922.            DATE:    26SEP91
  17923.         PRODUCT:    NetWare Btrieve (OS/2 Requester)
  17924. PRODUCT VERSION:    5.17x
  17925.      SUPERSEDES:    NA
  17926.  
  17927.         SYMPTOM:    Status 91's and 2001's
  17928.  
  17929. ISSUE/PROBLEM
  17930.  
  17931.     When trying to run child processes from a parent process, several errors can occur.  With the 5.17x requesters, if a negative value is returned, it is possible to have run out of IPX SOCKETS to talk on.  It is also possible that the station has run out of memory.  Normally, a status 91 should be returned when the IPX connection cannot be made.  Unfortunately it is not being trapped into a status of 91.  A lack of memory should be indicated by a 2001.
  17932.  
  17933. SOLUTION
  17934.  
  17935.     In the NET.CFG file, which lives in the root of C: for an OS/2 workstation,place the following lines:
  17936.  
  17937.                PROTOCOL STACK IPX
  17938.                     SOCKETS 128              <= that is the largest value
  17939.  
  17940.     This will allow up to 128 IPX sockets for SPX to talk on.  Remember also that the PROTOCOL STACK SPX line should have SESSIONS set to an applicable number.
  17941.  
  17942.     If memory is short, the system will begin returning an OS/2 error of 89 and it will not be possible to start other sessions.  Possibilities are to start Btrieve with smaller parameters or get more memory.
  17943.  
  17944.  
  17945.  
  17946.  
  17947. FYI:    How to use the Btrieve For Windows Requester
  17948.                                      FYI
  17949.  
  17950. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17951.  
  17952.           TITLE:    How to use the Btrieve For Windows Requester
  17953.     DOCUMENT ID:    FYI.A.1844
  17954.            DATE:    26SEP91
  17955.         PRODUCT:    NetWare Btrieve
  17956. PRODUCT VERSION:    5.15
  17957.      SUPERSEDES:    NA
  17958.  
  17959.         SYMPTOM:    NA
  17960.  
  17961. ISSUE/PROBLEM
  17962.  
  17963.     Many people inquire about how to use the Btrieve for Windows Requester to communicate with NetWare Btrieve from a Windows application.  This is to review all the different possibilities when using the requester and some confusing issues about the requester.
  17964.  
  17965.     Originally, the Btrieve for Windows Requester was going to be a pure Dynamic Link Library (DLL).  There would be only one DLL and it would talk to Windows and then back to SPX.  However, due to unforeseen circumstances, that particular implementation was not possible and a protected mode interface was developed.  Now most people that faithfully read their manuals will notice that in the Installation and Operation manual for Btrieve for MS-Windows (August1990 edition) there is a chart (on page 2-2) showing how to use the requester. That chart reflects the implementation the way it was originally intended, not the way it was actually implemented.  The reason for this is simple: the book came before the requester!
  17966.  
  17967.     The requester is implemented with a protected mode interface.  To the developer and user this means that DOS Btrieve Requester (BREQUEST.EXE - versions will be discussed below) must be loaded before going into Windows, and WBTRCALL.DLL must be in the current drive or search map.  If local files (drives A-D) will be accessed, there must be a WBTRLOCL.DLL in the current drive or search path.  Because BREQUEST is loaded before going into Windows, initialization features such as the /r and /s are no longer needed for the Windows requester.  Those particular parameters get set at the time BREQUEST is loaded.
  17968.  
  17969.     To initialize the requester WBTRCALL.DLL you must specify a [brequestDPMI]configuration section in the WIN.INI file.  You can establish the number of tasks, the data message length, parameter checking, and whether or not local Btrieve (WBTRLOCL.DLL) will be used.  The initialization routine WBRQSHELLINIT(string) is no longer valid and will not have any affect upon the current implementation of the requester.  The reason for this is that the parameters are not valid for the DLL.  All of this information can be found in the README.DOC which is supplied with the Btrieve requesters.
  17970.  
  17971.     Version Information:The original version of Btrieve for Windows was 5.10.  This came with the development kit, and is the client (or local) version.  The requester started at v5.15.  Below is a chart showing the current versions of the Btrieve for Windows requesters.
  17972.  
  17973.        BREQUEST.EXE        version 5.15
  17974.        WBTRCALL.DLL        version 5.17a
  17975.  
  17976.     The above two files are available on NetWire in Library 5 in the file BTRREQ.ZIP.  The original version of the Windows requester, WBTRCALL.DLL was version 5.15, and was distributed with the 5.15 release of NetWare Btrieve. Yet another release of the Windows requester (v5.16) came out with NetWare 3.1 and NetWare 2.2.  It was accompanied by the 5.16 release of the DOS requester.
  17977.  
  17978.     WBTRCALL.DLL version 5.16 had a slight problem.  It gave erroneous message to the user about running an inappropriate version of Windows.  The problem was reported and was addressed for the next release of the Windows requester, version 5.17a.
  17979.  
  17980.     In conclusion, remember that the best source of information about the requesters is in the README.DOC file which come with the requesters.  They usually have some tidbit of information that you need to know before proceeding.
  17981.  
  17982. SOLUTION
  17983.  
  17984.     NA
  17985.  
  17986.  
  17987.  
  17988.  
  17989. FYI:    Chkparms in Btrieve for Windows Local
  17990.                                      FYI
  17991.  
  17992. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  17993.  
  17994.           TITLE:    Chkparms in Btrieve for Windows Local
  17995.     DOCUMENT ID:    FYI.A.1628
  17996.            DATE:    24SEP91
  17997.         PRODUCT:    Btrieve for Windows
  17998. PRODUCT VERSION:    5.10
  17999.      SUPERSEDES:    NA
  18000.  
  18001.         SYMPTOM:    NA
  18002.  
  18003. ISSUE/PROBLEM
  18004.  
  18005.     When debugging a Btrieve for Windows problem, it's always been convenient, when using the requester, to set CHKPARMS=YES and have the DLL validate the size of parameters passed to the DLL.  Until now, it was always thought that this was only available to the requester version of the DLL.
  18006.  
  18007. SOLUTION
  18008.  
  18009.     The Btrieve for Windows client version (non-client/server) does have the capability of validating parameters.  When TRACEFILE= has a valid file name in the WIN.INI file, Btrieve for Windows client version WILL validate parameters.  Parameters are valid if you own the amount of memory the parameter is supposed to occupy.
  18010.  
  18011.  
  18012.  
  18013.  
  18014. FYI:    Status 14, Pre-Image Open Error
  18015.                                      FYI
  18016.  
  18017. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18018.  
  18019.           TITLE:    Status 14, Pre-Image Open Error
  18020.    DOCUMENT ID#:    FYI.A.3908
  18021.            DATE:    20SEP91
  18022.         PRODUCT:    Btrieve
  18023. PRODUCT VERSION:    5.10
  18024.      SUPERSEDES:
  18025.  
  18026.         SYMPTOM:    Status 14
  18027.  
  18028. ISSUE/PROBLEM
  18029.  
  18030.     Within a transaction, if an abort transaction is initiated with a 200 bias (221), the next time the file is accessed, a Status Code 14 (Pre-Image Open Error) is returned.
  18031.  
  18032. SOLUTION
  18033.  
  18034.     Do not issue an abort transaction with an opcode 221.  If you do, you will have to re-create the file; you will not be able to open it in any
  18035.      mode.
  18036.  
  18037.  
  18038.  
  18039.  
  18040. FYI:    GetAllKnownNetworks Bug
  18041.                                      FYI
  18042.  
  18043. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18044.  
  18045.           TITLE:    GetAllKnownNetworks Bug
  18046.     DOCUMENT ID:    FYI.A.1632
  18047.            DATE:    19SEP91
  18048.         PRODUCT:    Diagnostic Services
  18049. PRODUCT VERSION:    NA
  18050.      SUPERSEDES:    NA
  18051.  
  18052.         SYMPTOM:    NWCare "locks up"
  18053.  
  18054. ISSUE/PROBLEM
  18055.  
  18056.     The Diagnostics Services function call GetAllKnownNetworks seems to return 131 network addresses on the first call when made to a 3.10 file server. This would cause a "normally" coded program, like NWCare, to call the function iteratively, forever.
  18057.  
  18058. SOLUTION
  18059.  
  18060.     DIAGFIX.NLM (a patchman fix) fixes this bug and must be run on 3.10servers.  To keep applications making this call from hanging on an unpatched 3.10 server, the program should only call the function iteratively when the number of networks equals 128 (instead of greater than 127 or greater than or equal to 128).  There is no fix to keep NWCare from "locking up" except to install the patch on all 3.10 servers that may be queried.
  18061.  
  18062.  
  18063.  
  18064.  
  18065. FYI:    Lost Temporary Directory Handle
  18066.                                      FYI
  18067.  
  18068. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18069.  
  18070.           TITLE:    Lost Temporary Directory Handle
  18071.    DOCUMENT ID#:    FYI.A.1521
  18072.            DATE:    19SEP91
  18073.         PRODUCT:    NetWare C Interface DOS
  18074. PRODUCT VERSION:    1.2
  18075.      SUPERSEDES:    N/A
  18076.  
  18077.         SYMPTOM:    Temporary Directory Handle "[" (26) is deallocated
  18078.  
  18079. ISSUE/PROBLEM
  18080.  
  18081.     In the following API calls, Temporary Directory Handle "[" (26) is allocated for local use, then deallocated.  If an application has allocated temporary directory handle "[" (26) and then calls one of the following APIs, when the API call completes, directory handle "[" (26) will no longer be a valid handle.
  18082.  
  18083.     API calls:  GetEffectiveRights                PurgeSalvagableFile
  18084.                 RecoverSalvagableFile
  18085.                 SetTrustee
  18086.                 ScanDirEntry
  18087.                 ScanEntryForTrustees
  18088.                 ScanFileEntry
  18089.                 ScanFilePhysical
  18090.  
  18091.  
  18092. SOLUTION    Do not use directory handle "[" (26) when making these API calls, or allocate the directory handle again after the API function call.
  18093.  
  18094.  
  18095.  
  18096.  
  18097. FYI:    Adding Supplemental Indexes Through Xtrieve PLUS
  18098.                                      FYI
  18099.  
  18100. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18101.  
  18102.           TITLE:    Adding Supplemental Indexes Through Xtrieve PLUS
  18103.    DOCUMENT ID#:    FYI.A.1111
  18104.            DATE:    12SEP91
  18105.         PRODUCT:    Xtrieve PLUS for DOS
  18106. PRODUCT VERSION:    4.10
  18107.      SUPERSEDES:    N/A
  18108.  
  18109.         SYMPTOM:    N/A
  18110.  
  18111. ISSUE/PROBLEM
  18112.  
  18113.     A supplemental index cannot be added to a file when it is currently active in a view.  There is no error message returned when you try to do this, but the only option shown after selecting INDEX and your file name, is SHOW. What is normally shown at this point is SHOW, DEFINE, and REMOVE.
  18114.  
  18115.     Be aware that although an error message is not returned, the problem could be that the file is currently active in a view, and you will need to release it before adding the supplemental index.
  18116.  
  18117. SOLUTION
  18118.  
  18119.     All you have to do is release the view by selecting VIEW/MANAGE/RELEASE,  before adding the supplemental index.
  18120.  
  18121.  
  18122.  
  18123.  
  18124. FYI:    Using Btrieve Requester DLL's for OS/2
  18125.                                      FYI
  18126.  
  18127. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18128.  
  18129.           TITLE:    Using Btrieve Requester DLL's for OS/2
  18130.    DOCUMENT ID#:    FYI.A.2106
  18131.            DATE:    11SEP91
  18132.         PRODUCT:    NetWare Btrieve VAP or NLM
  18133. PRODUCT VERSION:    All Versions
  18134.      SUPERSEDES:    N/A
  18135.  
  18136.         SYMPTOM:    N/A
  18137.  
  18138. ISSUE/PROBLEM
  18139.  
  18140.     There have been a lot of FYI's on this subject, however there is still some confusion out there.  This FYI is an attempt to clarify some of these misunderstandings.  Most of the FYI's regarding this subject mention BTRCALLS.DLL but do not necessarily list the version number, date stamp and file size.  The following is an attempt to do just that:
  18141.  
  18142.     BTRIEVE OS/2 REQUESTER DLL'S============================
  18143.  
  18144.     BTRCALLS.DLL    03/22/90              24,762              5.10
  18145.  
  18146.     *    Intermittent status 95 problem on OPEN operation when used with SPX.SYS bundled with the Netware OS/2 requester version 1.20 and 1.21. You must use patched SPX.SYS (dated 01-04-91  19,648).
  18147.  
  18148.     *    Will not work at all with Netware OS/2 requester 1.3.
  18149.  
  18150.     *    Very slow performance
  18151.  
  18152.     BTRCALLS.DLL    10/16/90              29,802              5.15
  18153.  
  18154.     *    Intermittent status 95 problem on OPEN operation when used with SPX.SYS bundled with the Netware OS/2 requester version 1.20 and 1.21. You must use patched SPX.SYS (dated 01-04-91  19,648).
  18155.  
  18156.     *    Does not work at all with Netware OS/2 requester v1.3.
  18157.  
  18158.     *    Performance increase over version 5.10, but still slow.
  18159.  
  18160.     BTRCALLS.DLL    02/19/91              55,112              5.17
  18161.  
  18162.     *    This version of the DLL must be used with 1.3 Netware OS/2 requester, however there is a status 95 problem when running multiple tasks trying to open the same btrieve file. Only solution is to use BTRCALLS.DLL v5.15 and the Netware OS/2 requester v1.21, however it will have a significant performance degradation.
  18163.  
  18164.     *    You can access local files with renamed DLL (MAKELOCAL)
  18165.  
  18166.     *    Maximum record length cannot exceed 300 bytes
  18167.  
  18168.     BTRCALLS.DLL    04/30/91              19,438              5.17a
  18169.  
  18170.     *    This version of the DLL must be used with 1.3 Netware OS/2 requester, however there is a status 95 problem when running multiple tasks trying to open the same btrieve file. Only solution is to use BTRCALLS.DLL v5.15 and the Netware OS/2 requester v1.21, however it will have a significant performance degradation.
  18171.  
  18172.     *    Cannot access local Btrieve files with DLL renamed with MAKELOCAL. Btrieve will return status 76.
  18173.  
  18174.     *    Fixed maximum record length limit of 300 bytes.
  18175.  
  18176.     When referring to the Netware OS/2 requesters, you are talking about approximately 40 files, with the two most important being the NWREQ.SYS and SPX.SYS files.
  18177.  
  18178.        NETWARE OS/2 REQUESTERS=======================
  18179.  
  18180.     NWREQ.SYS       11/09/91              11,664             v1.20
  18181.       SPX.SYS       09/22/89              19,120
  18182.  
  18183.     *    Can only run with OS/2 version 1.2
  18184.  
  18185.     *    Only allows a maximum of 16 SPX Sessions.  Must check the following command line in the NET.CFG:
  18186.  
  18187.           Protocol Stack SPX
  18188.          Sessions 16
  18189.  
  18190.          If this is set higher than 16 the workstation will GPI.
  18191.  
  18192.     *    SPX.SYS causes delay in packet transmission which caused Btrieve to give intermittent status 95. Must be replaced with patched SPX.SYS (dated  01/04/91   19,648 bytes)
  18193.  
  18194.     NWREQ.SYS       06/18/90              13,760             v1.21
  18195.       SPX.SYS       05/11/90              19,616
  18196.  
  18197.     *    Can run with OS/2 versions 1.2 and above.
  18198.  
  18199.     *    Only allows a maximum of 16 SPX Sessions.  Must check the following       command line in the NET.CFG:
  18200.  
  18201.          Protocol Stack SPX
  18202.          Sessions 16
  18203.  
  18204.          If this is set higer than 16 the workstation will GPI.
  18205.  
  18206.     *    SPX.SYS caused delay in packet transmission which caused Btrieve to       give intermittent status 95. Must be replaced with patched SPX.SYS       (dated  01/04/91   19,648 bytes)
  18207.  
  18208.     NWREQ.SYS       02/13/91              16,864             v1.3
  18209.       SPX.SYS       02/13/91              12,208
  18210.  
  18211.     *    Completely rewritten - much improved performance
  18212.  
  18213.     *    Fixed limitation of only 16 SPX sessions
  18214.  
  18215.     *    Can run with OS/2 versions 1.2 and above
  18216.  
  18217.     *    SPX.SYS timing problem still causing status 95 problem (2 tasks)
  18218.  
  18219.     The two most frequent problems that your customer will encounter will be General Protection errors or status 95 errors.  If you have a customer experiencing status 95 problems, have them give you all the file sizes and date stamps for the NWREQ.SYS, SPX.SYS and BTRCALLS.DLL.  This will tell you which status 95 problem they have and what they will have to do to work around it.  Obviously, first work around is to use the client DLL.  If the customer is experiencing General Protection errors, make sure that the appropriate version of Netware OS/2 requesters match the version of OS/2 and that the SPX.SYS is the appropriate file that is sent with the NWREQ.SYS file.
  18220.  
  18221.     CONFIDENTIAL
  18222.     This FYI was generated through a lot of research through old FYI's and several technicians memory recall.
  18223.  
  18224.  
  18225.  
  18226.  
  18227. FYI:    GetFileServerLANIOStats, part 2
  18228.                                      FYI
  18229.  
  18230. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18231.  
  18232.           TITLE:    GetFileServerLANIOStats, part 2
  18233.     DOCUMENT ID:    FYI.A.1631
  18234.            DATE:    10SEP91
  18235.         PRODUCT:    C Interface - DOS
  18236. PRODUCT VERSION:    1.2
  18237.      SUPERSEDES:    NA
  18238.  
  18239.         SYMPTOM:    NA
  18240.  
  18241. ISSUE/PROBLEM
  18242.  
  18243.     The value for Total Packets Received in the STATISTICS/LAN I/O STATISTICS menu in FCONSOLE does not seem to have a matched value in the function call GetFileServerLANIOStats.
  18244.  
  18245. SOLUTION
  18246.  
  18247.     This value is a combination of totalFileServicePackets and totalOtherPackets,both members of the SERVER_LAN_IO structure returned from GetFileServerLANIOStats.  FCONSOLE reports the combined total, but the function returns the totals separately for File Service and non-File Service packets.
  18248.  
  18249.  
  18250.  
  18251.  
  18252. FYI:    GetFileServerLANIOStats, part 1
  18253.                                      FYI
  18254.  
  18255. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18256.  
  18257.           TITLE:    GetFileServerLANIOStats, part 1
  18258.     DOCUMENT ID:    FYI.A.1630
  18259.            DATE:    10SEP91
  18260.         PRODUCT:    C Interface - DOS
  18261. PRODUCT VERSION:    1.2
  18262.      SUPERSEDES:    NA
  18263.  
  18264.         SYMPTOM:    Negative packet counts
  18265.  
  18266. ISSUE/PROBLEM
  18267.  
  18268.     Large values returned by this function through the SERVER_LAN_IO structure will appear as negative values.  This is not usually evident on systems that have not been up for a long time.
  18269.  
  18270. SOLUTION
  18271.  
  18272.     The values defined in the structure, SERVER_LAN_IO, in NWCONSOL.H, are defined as ints and longs.  They should, however, be WORDs and LONGs. WORDs are unsigned ints and LONGs are unsigned longs.
  18273.  
  18274.  
  18275.  
  18276.  
  18277. FYI:    Brieve Status 2s
  18278.                                      FYI
  18279.  
  18280. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18281.  
  18282.           TITLE:    Brieve Status 2s
  18283.    DOCUMENT ID#:    FYI.A.3338
  18284.            DATE:    09SEP91
  18285.         PRODUCT:    Btrieve Single User
  18286. PRODUCT VERSION:    4.11
  18287.      SUPERSEDES:    N/A
  18288.  
  18289.         SYMPTOM:    Btrieve Status 2s
  18290.  
  18291. ISSUE/PROBLEM
  18292.  
  18293.     A customer was receiving status 2s when performing transactions on a PC with the American Megatrends CNT 286 BIOS, version 1.3.  The customer was using Btrieve version 4.11.
  18294.  
  18295. SOLUTION
  18296.  
  18297.     Upgrade to Btrieve 5.10a.  The customer's problem disappeared after upgrading to 5.10a.
  18298.  
  18299.  
  18300.  
  18301.  
  18302. FYI:    3.11 Server GPIs
  18303.                                      FYI
  18304.  
  18305. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18306.  
  18307.           TITLE:    3.11 Server GPIs
  18308.    DOCUMENT ID#:    FYI.A.3337
  18309.            DATE:    09SEP91
  18310.         PRODUCT:    NetWare Btrieve NLM
  18311. PRODUCT VERSION:    5.15
  18312.      SUPERSEDES:    N/A
  18313.  
  18314.         SYMPTOM:    3.11 Server GPIs
  18315.  
  18316. ISSUE/PROBLEM
  18317.  
  18318.     The Btrieve NLM, version 5.15, when used in conjunction with the 5.16 DOS Requester and 5.16 Windows Requester caused a 3.11 server to GPI.  This occurred with any Btrieve request.  The GPIs did not occur as long as Btrieve was not accessed.
  18319.  
  18320. SOLUTION
  18321.  
  18322.     The customer was using the Proteon NWR-199X token ring driver, version 1.00, dated June 22, 1990.  The problem disappeared after they upgraded their driver to the 1.04 driver dated February 25, 1991.
  18323.  
  18324.  
  18325.  
  18326.  
  18327. FYI:    Syntax for Btrieve filenames
  18328.                                      FYI
  18329.  
  18330. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18331.  
  18332.           TITLE:    Syntax for Btrieve filenames
  18333.     DOCUMENT ID:    FYI.A.1916
  18334.            DATE:    09SEP91
  18335.         PRODUCT:    NetWare Btrieve
  18336. PRODUCT VERSION:    5.x
  18337.      SUPERSEDES:    FYI.A.1104, FYI.A.2007
  18338.  
  18339.         SYMPTOM:    NA
  18340.  
  18341. ISSUE/PROBLEM
  18342.  
  18343.     When doing a Btrieve OPEN on a network file with NetWare Btrieve, the filename does not have to contain the drive letter, i.e., you do not have to have a drive mapped to the volume that the file resides on.  An earlier FYI (FYI.A.2007) listed four formats that can be used to access files in this manner.  Just to emphasize, you must be attached to the server that the file resides on! Otherwise you will get a Btrieve status 11 - Invalid File Name.
  18344.     Another FYI (FYI.A.1104) mentioned the same thing about accessing files through Xtrieve PLUS version 4.01a.  This is the file format specified in that FYI:
  18345.             \\servername\volume:dir\dir\filename
  18346.  
  18347.     With the current version of NetWare Btrieve (5.15), attempting to open a Btrieve file with this syntax will result in a status 11.  With Xtrieve PLUS version 4.01a and Btrieve 5.15 you also get a status 11.  The correct syntax is:
  18348.  
  18349.             \\servername\volume\dir\dir\filename
  18350.  
  18351. SOLUTION
  18352.  
  18353.     NA
  18354.  
  18355.  
  18356.  
  18357.  
  18358. FYI:    Status 20 when Brequest Not Loaded Before Windows
  18359.                                      FYI
  18360.  
  18361. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18362.  
  18363.           TITLE:    Status 20 when Brequest Not Loaded Before Windows
  18364.    DOCUMENT ID#:    FYI.A.2415
  18365.            DATE:    06SEP91
  18366.         PRODUCT:    Btrieve for Windows Requester
  18367. PRODUCT VERSION:    5.17a
  18368.      SUPERSEDES:    N/A
  18369.  
  18370.         SYMPTOM:    Status 20
  18371.  
  18372. ISSUE/PROBLEM
  18373.  
  18374.     Versions 5.15 (9456 bytes) and 5.16 (11377 bytes) of the Btrieve for Windows Requester (WBTRCALL.DLL) were not returning a status 20 when Brequest was NOT loaded before entering Windows 3.0.  Instead, strange status codes were returned when trying to open a Btrieve file, or the file would open with a status 0, and subsequent Btrieve calls would return status 0, but the Btrieve calls were not successful (for example, no data was returned on a GetFirst).
  18375.  
  18376. SOLUTION
  18377.  
  18378.     The new Btrieve for Windows Requester 5.17a (11712 bytes) fixes this problem.  It correctly returns status 20 when Brequest is not loaded before entering Windows 3.0.
  18379.  
  18380.  
  18381.  
  18382.  
  18383. FYI:    __qmalloc() might block
  18384.                                      FYI
  18385.  
  18386. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18387.  
  18388.           TITLE:    __qmalloc() might block
  18389.    DOCUMENT ID#:    FYI.A.3817
  18390.            DATE:    05SEP91
  18391.         PRODUCT:    Network C for NLMs
  18392. PRODUCT VERSION:    SDKa
  18393.      SUPERSEDES:    N/A
  18394.  
  18395.         SYMPTOM:    __qmalloc() seems to relinquish control
  18396.  
  18397. ISSUE/PROBLEM
  18398.  
  18399.     In the documentation of Network C for NLMs SDK(a), __qmalloc is flagged as non-blocking, which means it will not relinquish control.  However, sometimes it seems to block.
  18400.  
  18401. SOLUTION
  18402.  
  18403.     If __qmalloc() is called with equal to or greater than the size of the cache buffers, it might block.  If it is called with less than the size of cache buffers, it will not block.  The cache buffers size can be viewed or changed with the console set command.  The default size is 4096 bytes.
  18404.  
  18405.  
  18406.  
  18407.  
  18408. FYI:    OS/2: The difference between the Novell and IBM RESET command
  18409.                                      FYI
  18410.  
  18411. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18412.  
  18413.           TITLE:    OS/2: The difference between the Novell and IBM RESET command
  18414.    DOCUMENT ID#:    FYI.A.2907
  18415.            DATE:    03SEP91
  18416.         PRODUCT:    OS/2 SDK
  18417. PRODUCT VERSION:    1.3a
  18418.      SUPERSEDES:    N/A
  18419.  
  18420.         SYMPTOM:    N/A
  18421.  
  18422. ISSUE/PROBLEM
  18423.  
  18424.     The Novell RESET command under the OS/2 NetBIOS emulator behaves differently than the IBM OS/2 NetBIOS RESET command.  The Novell OS/2 NetBIOS RESET command works the same way as the DOS NetBIOS RESET command. It applies to the entire workstation; it resets the local adaptor status and clears the name and the session tables, and it requires exclusive access.
  18425.  
  18426.     The IBM RESET command works the same way as the OS/2 RESET command. In the OS/2 environment, the RESET command applies only to the application program and not to the entire workstation.  An application program issues a RESET to allocate resource for itself from a pool of NetBIOS resources.  Under IBM OS/2 NetBIOS, when the RESET is issued, only resources applicable to that application are given back to NetBios.  For that application, all current NetBIOS names are deleted, all current sessions are aborted, and all outstanding NCBs are purged.  After resources are freed, new resources are acquired for the application according to the RESET request.
  18427.  
  18428. SOLUTION    N/A
  18429.  
  18430.  
  18431.  
  18432.  
  18433. FYI:    Windows & TBMI 1.1 problems
  18434.                                      FYI
  18435.  
  18436. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18437.  
  18438.           TITLE:    Windows & TBMI 1.1 problems
  18439.    DOCUMENT ID#:    FYI.A.2630
  18440.            DATE:    03SEP91
  18441.         PRODUCT:    Windows SDK
  18442. PRODUCT VERSION:    1.22
  18443.      SUPERSEDES:    N/A
  18444.  
  18445.         SYMPTOM:    N/A
  18446.  
  18447. ISSUE/PROBLEM
  18448.  
  18449.     TBMI version 1.1, which is shipping with the Windows SDK 1.22 is experiencing several problems.
  18450.  
  18451.     It does not work correctly with TASKID 1.0 which also comes with SDK 1.22. It will hang Windows, requiring in most cases a hard boot.  The problems that were seen, involved running a DOS communication based application. Slightly different lock ups occurring if the application was receiving or transmitting.  Both Enhanced mode and Standard were tried.
  18452.  
  18453.     Some clients also complained that running Window based applications caused problems, although I could not duplicate this.
  18454.  
  18455. SOLUTION
  18456.  
  18457.     Currently the only solution is to use TBMI 1.0, which came with the Windows SDK version 1.21.
  18458.  
  18459.  
  18460.  
  18461.  
  18462. FYI:    Btrieve Transactions & Lock Bias Values
  18463.                                      FYI
  18464.  
  18465. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18466.  
  18467.           TITLE:    Btrieve Transactions & Lock Bias Values
  18468.    DOCUMENT ID#:    FYI.A.1742
  18469.            DATE:    02SEP91
  18470.         PRODUCT:    Btrieve
  18471. PRODUCT VERSION:    All
  18472.      SUPERSEDES:    N/A
  18473.  
  18474.         SYMPTOM:    Status 85 vs. Waiting
  18475.  
  18476. ISSUE/PROBLEM
  18477.  
  18478.     The following is a clarification of how a lock bias works in conjunction with Btrieve transactions.  There are two types of transactions - Wait Transactions and NoWait Transactions.  To start up a wait transaction, you issue a Btrieve operation 19, 119 or 319 (all of these act the same).  If any operation you attempt to do in a transaction started this way cannot be done due to the file being unavailable, Btrieve will wait instead of returning control to your application.  A file will be unavailable if another workstation is currently accessing the file within a transaction, or another workstation has a record in the file locked.  Also, note that any bias put on an operation inside the transaction is ignored.  Examples of this are:
  18479.  
  18480.               <EXAMPLE 1>                            <EXAMPLE 2>
  18481.     WorkStation 1     WorkStation 2         WorkStation 1     WorkStation 2
  18482.     ---------------   -------------         --------------   ---------------
  18483.     219-Begin Trans                         0-Open File A
  18484.       0-Open File A                        412-GetFirst +
  18485.                       19-Begin Trans.         NoWait Lock     19-BeginTrans
  18486.                        0-Open File A            on File A
  18487.                           <* WAIT *>                          200-Open File A
  18488.                                                                   <* WAIT *>
  18489.  
  18490.     In Example 1, Workstation 2 will wait on the Open attempt until Workstation 1 completes its transaction.  This Wait occurs because Workstation 2 started its transaction with a Wait Bias.  In Example 2, Workstation 2 will wait on the Open attempt until Workstation 1 releases all record locks for File A. Notice the NoWait bias added to the Open was ignored; the bias of the transaction overrides any bias added to an operation within the transaction.
  18491.  
  18492.     Both of these examples attempt to open the file inside the transaction.  The same results will occur if instead you open the file before the transaction is started, and read from the file within the transaction.  In other words, the waiting occurs when trying to obtain a file lock for the file being accessed inside a transaction, whether that access is an open or read operation.
  18493.  
  18494.     If you do NOT want Workstation 2 to wait in the above examples, you should start your transaction with an operation 219 or 419.  Then, any subsequent file access that can not be completed will return a status 85 - File In Use. Again, this NoWait bias overrides any bias used within the transaction, so you cannot force a wait.
  18495.  
  18496. SOLUTION     N/A
  18497.  
  18498.  
  18499.  
  18500.  
  18501. FYI:    Btrieve File Level Locking
  18502.                                      FYI
  18503.  
  18504. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18505.  
  18506.           TITLE:    Btrieve File Level Locking
  18507.    DOCUMENT ID#:    FYI.A.1741
  18508.            DATE:    02SEP91
  18509.         PRODUCT:    Btrieve
  18510. PRODUCT VERSION:    All
  18511.      SUPERSEDES:    N/A
  18512.  
  18513.         SYMPTOM:    Status 85
  18514.  
  18515. ISSUE/PROBLEM
  18516.  
  18517.     There appears to be some confusion in the use of a Btrieve lock bias on an Open operation.  First of all, successfully opening a file with a 100, 200, 300 or 400 operation code does NOT lock the file.  In fact, in general, it has no effect at all!
  18518.  
  18519.     There is only one circumstance where a lock bias added to an open actually has an effect -- IF a) you are using Client Btrieve, AND b) workstation 1 is currently accessing the file in a transaction, AND c) you want to wait until workstation 1 has finished its transaction and then have the open performed, instead of having an error code returned to the application. Normally, with Client Btrieve, if you attempt to open a file that another workstation is accessing within a transaction, your application will receive a Btrieve status code 85 - File In Use.  If you don't want to receive this error code, but want Btrieve to wait until the other workstation Ends or Aborts the transaction so you can open the file successfully, you can issue your Btrieve open operation with a Wait Lock Bias (+100 or +300).  Again, this will not lock the file; it only tells Btrieve to wait until the file is available without returning control to the application.
  18520.  
  18521.     NetWare Btrieve will allow a worstation to open a file, even if another workstation is accessing it within a transaction.  In both types of Btrieve (NetWare and Client), if a workstation already has a file open when a second workstation accesses the same file in a transaction, the first workstation can continue to access the file with read operations, but will not be able to perform any write (Insert/Delete/Update) operations, or access the file within its own transaction until the second workstation Ends or Aborts its transaction.
  18522.  
  18523.     Suppose you DO want to lock a file.  How do you do it?  There are two ways. The first is by opening the file in Exclusive Mode (using a Key Number of -4 on the open call).  This will only be successful if no other workstation has the file open.  If this operation is successful, no other workstation will be able to open this same file, in any mode (including Read-Only), until the user who has it open in Exclusive Mode closes the file.
  18524.  
  18525.     The second method is by accessing the file within a transaction.  As soon as you access a file in any way from within a transaction (opening or reading from the file), you are granted a file level lock.  Other users can still read from this file, but cannot perform any modifications.  When using Client Btrieve, as discussed above, you also prevent other users from opening the file when you have it locked in this manner.
  18526.  
  18527. SOLUTION    N/A
  18528.  
  18529.  
  18530.  
  18531.  
  18532. FYI:    Illegal Lock Bias
  18533.                                      FYI
  18534.  
  18535. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18536.  
  18537.           TITLE:    Illegal Lock Bias
  18538.    DOCUMENT ID#:    FYI.A.1740
  18539.            DATE:    02SEP91
  18540.         PRODUCT:    Btrieve
  18541. PRODUCT VERSION:    All
  18542.      SUPERSEDES:    N/A
  18543.  
  18544.         SYMPTOM:    Btrieve Status 81
  18545.  
  18546. ISSUE/PROBLEM
  18547.  
  18548.     In the course of experimenting with Btrieve and locking, I discovered that Btrieve accepts any positive multiple of 100 as a valid lock bias. According to the Btrieve Programmer's Manual, page 4-82 (April 1990 Edition), the only valid lock bias values are: +100 (Single, Wait), +200 (Single, NoWait), +300  (Multiple, Wait), and +400 (Multiple, NoWait). However, +500, +600, etc. are all accepted by Btrieve, and all perform as a +400.  For example, operation 712 attempts to lock the first record of the file, and returns an error code if it can not get the lock.  Similarly, you can specify on operation of 10019 to start a NoWait Transaction.
  18549.  
  18550.     Unfortunately, a Btrieve Unlock operation (27) does not successfully remove one of these locks.  Instead, it returns a status 81 - Lock Error. However, closing the file will successfully clear any locks made with bias values greater than 400.
  18551.  
  18552. SOLUTION    N/A
  18553.  
  18554.  
  18555.  
  18556.  
  18557. FYI:    Btrieve Transaction Control File
  18558.                                      FYI
  18559.  
  18560. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18561.  
  18562.           TITLE:    Btrieve Transaction Control File
  18563.    DOCUMENT ID#:    FYI.A.2414
  18564.            DATE:    30AUG91
  18565.         PRODUCT:    Btrieve for DOS and NetWare Btrieve
  18566. PRODUCT VERSION:    5.10a
  18567.      SUPERSEDES:    N/A
  18568.  
  18569.         SYMPTOM:    N/A
  18570.  
  18571. ISSUE/PROBLEM
  18572.  
  18573.     The Btrieve transaction control file is used to keep track of which Btrieve files are accessed within a transaction.  Btrieve filenames, including their paths, are only written to this file during the End Transaction call, just in case the system fails during this call.  If  the End Transaction is successful, then Btrieve is supposed to delete the filenames from the transaction control file.  If the End Transaction is not successful, then Btrieve will finish any uncompleted operations within the transaction the next time the files are opened.
  18574.  
  18575.     When using Btrieve for DOS, the transaction control file is specified by the /t loading parameter.  For example, the following command will load Btrieve with a page size of 2048, a memory size of 25, and a transaction control filename of TRANS.CON in the DATA directory off of the P drive:
  18576.  
  18577.      Btrieve /p:2048 /m:25 /t:P:\DATA\TRANS.CON
  18578.  
  18579.     All Btrieve for DOS users on a network must share the same transaction control file.  So, each copy of Btrieve should have a /t parameter that points to the same physical location on the network where the transaction control file resides.
  18580.  
  18581.     When using transactions with NetWare Btrieve, a system defined transaction control file is automatically created in the \SYS:SYSTEM directory.  The name of the file is BTRIEVE.TRN.  When Btrieve is loaded, both the  "Number of transactions" and the "Number of files per transaction" in the BSETUP "Set Configuration" menu should be greater than zero.  The transaction control file is actually created when Btrieve for DOS or NetWare Btrieve is loaded.
  18582.  
  18583.     Have you ever wondered what kind of rights a user needs in the directory that contains the Btrieve transaction control file?  If NetWare Btrieve is being used, then the user does not need any rights to that directory since NetWare Btrieve has 'supervisor' rights, and it is NetWare Btrieve which creates and writes to the Btrieve transaction control file.
  18584.  
  18585.     However, if Btrieve for DOS is being used, then the user must have a minimum of 'write' rights in the directory specified for the transaction control file.  If a user has the minimum rights required, then the transaction control file must exist already when the user loads Btrieve with the /t: option.  If the user has 'create' rights in the directory, then the transaction control file does not need to exist before Btrieve is loaded with the /t: option.
  18586.  
  18587.     Now that we are on this subject, have you ever wondered if filenames are actually deleted from the transaction control file when a Btrieve End Transaction operation is performed?
  18588.  
  18589.     For Btrieve for DOS, all of the filenames are not deleted out of the transaction control file until right before Btrieve writes to it.  When  an End Transaction operation is executed, Btrieve deletes all filenames in the transaction control file, and then writes all the filenames from its transaction buffer into the transaction control file.  However, currently, Btrieve for DOS is not cleaning up this transaction buffer, so filenames from past transactions may also be written to the file.  This does not cause a problem since Btrieve writes the number of valid filenames at the beginning of the transaction control file.  Therefore, Btrieve knows which files have operations that need to be completed.
  18590.  
  18591.     Let's say that five files are involved in a transaction, and their names are written into the transaction control file when the End Transaction operation is performed.  Then later on, only one file is used in a transaction.  Will the original five filenames be deleted out of the transaction control file and replaced by the new filename, or will the new filename overwrite the first filename in the transaction control file, leaving files two through five still in the transaction control file?
  18592.  
  18593.     This is the current answer for Btrieve for DOS:
  18594.  
  18595.     If the same workstation is being used, and Btrieve for DOS is not unloaded and reloaded between transactions, Btrieve will write the new filename over the first filename in the list of five.  If Btrieve is unloaded and reloaded between transactions, only the new filename will appear in the transaction control file.  Also, if different workstations are used, only the new filename will appear in the transaction control file.
  18596.  
  18597. SOLUTION    N/A
  18598.  
  18599.  
  18600.  
  18601.  
  18602. FYI:    Executables Can Grow After Applying Patches
  18603.                                      FYI
  18604.  
  18605. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18606.  
  18607.           TITLE:    Executables Can Grow After Applying Patches
  18608.    DOCUMENT ID#:    FYI.A.2017
  18609.            DATE:    30AUG91
  18610.         PRODUCT:    NetWare Btrieve NLM
  18611. PRODUCT VERSION:    5.15
  18612.      SUPERSEDES:    N/A
  18613.  
  18614.         SYMPTOM:    Applying the patches to the Btrieve NLM increases the size of the NLM.
  18615.  
  18616. ISSUE/PROBLEM
  18617.  
  18618.     The patches for the Btrieve 5.15 NLM cause the size of the NLM to grow. As of 8/30/91 and up through patch #31, the NLM's size will increase from 64616 bytes to 65148 after the patches are applied.  There are 3 reasons for this growth:
  18619.  
  18620.     1.    To expand the space for the patches themselves
  18621.     2.    To edit the relocation table of the NLM
  18622.     3.    To put in additional calls to CLIB functions
  18623.  
  18624.     As of 8/30/91, the Btrieve 5.15 NLM is the only program that increases in size, but all of our programs are eligible for this growth with future patches.
  18625.  
  18626. SOLUTION    N/A
  18627.  
  18628.  
  18629.  
  18630.  
  18631. FYI:    Get Position on Key-Only File
  18632.                                      FYI
  18633.  
  18634. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18635.  
  18636.           TITLE:    Get Position on Key-Only File
  18637.    DOCUMENT ID#:    FYI.A.2413
  18638.            DATE:    29AUG91
  18639.         PRODUCT:    Btrieve
  18640. PRODUCT VERSION:    5.1x
  18641.      SUPERSEDES:    N/A
  18642.  
  18643.        SYMPTOM:    N/A
  18644.  
  18645. ISSUE/PROBLEM
  18646.  
  18647.     Btrieve (DOS, VAP and NLM) allows a user to perform a Get Position on a key-only file.  This probably should not be allowed since the physical location of the keys move around when the Btrieve file is changed (ex: inserting new records).  The "Btrieve Programmer's Manual" (April 1990 Edition) does not currently warn the user that the physical position of the key in a key-only file may change.  A Get Position would only be useful if the Btrieve file never changed.
  18648.  
  18649. SOLUTION     N/A
  18650.  
  18651.  
  18652.  
  18653.  
  18654. FYI:    NetWare Btrieve and NetWare SQL requesters
  18655.                                      FYI
  18656.  
  18657. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18658.  
  18659.           TITLE:    NetWare Btrieve and NetWare SQL requesters
  18660.    DOCUMENT ID#:    FYI.A.1739
  18661.            DATE:    29AUG91
  18662.         PRODUCT:    NetWare Btrieve, NetWare SQL
  18663. PRODUCT VERSION:    5.15, 2.11
  18664.      SUPERSEDES:    N/A
  18665.  
  18666.         SYMPTOM:    N/A
  18667.  
  18668. ISSUE/PROBLEM
  18669.  
  18670.     Following is a list of the current versions of the NetWare Btrieve and NetWare SQL requesters for the supported workstation platforms:
  18671.  
  18672.      NetWare Btrieve (NLM and VAP) v5.15
  18673.      -----------------------------------
  18674.        DOS requester: v5.16              BREQUEST.EXE  18060  2-12-91  5:25p
  18675.  
  18676.        OS/2 requester: v5.17a            BTRCALLS.DLL  19438  4-30-91  4:55p
  18677.         (requires NetWare OS/2
  18678.          requester ver. 1.3 or greater)
  18679.  
  18680.        MS-Windows 3.0 requester: v5.16   WBTRCALL.DLL  11377  2-12-91  5:14p
  18681.  
  18682.      NetWare SQL (NLM and VAP) v2.11
  18683.      -------------------------------
  18684.        DOS requester: v2.12a             NSREQ.EXE     61082  4-08-91  2:12a
  18685.                                          NSREQS.EXE    21680  4-08-91  2:12a
  18686.        OS/2 requester: v2.11             XQLCALLS.DLL  29498  7-21-90  1:40a
  18687.         (requires NetWare OS/2
  18688.          requester ver. 1.1, 1.2 or 1.21.
  18689.         Will not work with 1.3!)
  18690.  
  18691.        MS-Windows 3.0 requester: v2.13   WXQLCALL.DLL  20240  4-08-91  2:13p
  18692.  
  18693. SOLUTION    N/A
  18694.  
  18695.  
  18696.  
  18697.  
  18698. FYI:    Shell v3.22 and the shellRequestCount
  18699.                                      FYI
  18700.  
  18701. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18702.  
  18703.           TITLE:    Shell v3.22 and the shellRequestCount
  18704.    DOCUMENT ID#:    FYI.A.1520
  18705.            DATE:    29AUG91
  18706.         PRODUCT:    NetWare Shell
  18707. PRODUCT VERSION:    3.22
  18708.      SUPERSEDES:    N/A
  18709.  
  18710.         SYMPTOM:    The ShellRequestCount returned from the v3.22 shell is
  18711.                     incorrect; value is too high.
  18712.  
  18713. ISSUE/PROBLEM
  18714.  
  18715.     The GetShellStatistics call when issued against the v3.22 shell will return a value in the ShellRequestCount that is too high.  The value will be in the million+ range a minute after the shell was loaded.  This does not occur in any of the earlier versions of the shell.
  18716.  
  18717. SOLUTION
  18718.  
  18719.     Use an earlier shell version until a the bug is fixed.
  18720.  
  18721.  
  18722.  
  18723.  
  18724. FYI:    NetWare 3.11 and ReadOnly Files
  18725.                                      FYI
  18726.  
  18727. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18728.  
  18729.           TITLE:    NetWare 3.11 and ReadOnly Files
  18730.    DOCUMENT ID#:    FYI.A.3340
  18731.            DATE:    28AUG91
  18732.         PRODUCT:    NetWare
  18733. PRODUCT VERSION:    3.11
  18734.      SUPERSEDES:    N/A
  18735.  
  18736.         SYMPTOM:    An open of a file for read/write access is successful,
  18737.                    even though the file is flagged ReadOnly.
  18738.  
  18739. ISSUE/PROBLEM
  18740.  
  18741.     DOS Returns an error 5 in this situation.  NetWare 3.11, however, will allow access to the file.  A ReadOnly file handle is returned to the application.  Any attempts to write to the file will fail.  This is a feature of NetWare 3.11 at the request of numerous customers.
  18742.  
  18743. SOLUTION    N/A
  18744.  
  18745.  
  18746.  
  18747.  
  18748. FYI:    Portable NetWare & The APIs
  18749.                                      FYI
  18750.  
  18751. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18752.  
  18753.           TITLE:    Portable NetWare & The APIs
  18754.    DOCUMENT ID#:    FYI.A.3339
  18755.            DATE:    28AUG91
  18756.         PRODUCT:    NetWare C Interface DOS, NetWare System Calls
  18757. PRODUCT VERSION:    ALL
  18758.      SUPERSEDES:    N/A
  18759.  
  18760.         SYMPTOM:    N/A
  18761.  
  18762. ISSUE/PROBLEM
  18763.  
  18764.     There have been some questions raised regarding the NetWare APIs, specifically client, accessing a Portable NetWare server.  According to Provo the APIs should behave just as if they were dealing with a 3.x file server.
  18765.  
  18766.     One side note, NLMs are not supported under Portable Netware.  However, it is possible to write host based applications that talk to the NetWare Server.  Most Portable NetWare vendors supply libraries that allow host applications to access the NetWare task.
  18767.  
  18768. SOLUTION    N/A
  18769.  
  18770.  
  18771.  
  18772.  
  18773. FYI:    Windows Requester Overwrites Memory
  18774.                                      FYI
  18775.  
  18776. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18777.  
  18778.           TITLE:    Windows Requester Overwrites Memory
  18779.    DOCUMENT ID#:    FYI.A.3336
  18780.            DATE:    28AUG91
  18781.         PRODUCT:    NetWare Btrieve Requester
  18782. PRODUCT VERSION:    5.16
  18783.      SUPERSEDES:    N/A
  18784.  
  18785.        SYMPTOM:    Unrecoverable Application Errors (UAE)
  18786.  
  18787. ISSUE/PROBLEM
  18788.  
  18789.     The Windows Requester, version 5.16, returns garbage in the key buffer parameter when inserting data into a data-only file.  This does not occur in the local version.
  18790.  
  18791. SOLUTION
  18792.  
  18793.     Until a patch is written the developer can specify a key buffer of 255 bytes.  This will keep Btrieve from overwriting memory and causing the UAE.
  18794.  
  18795.  
  18796.  
  18797.  
  18798. FYI:    Options with some HLLAPI API's
  18799.                                      FYI
  18800.  
  18801. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18802.  
  18803.           TITLE:    Options with some HLLAPI API's
  18804.    DOCUMENT ID#:    FYI.A.2825
  18805.            DATE:    28AUG91
  18806.         PRODUCT:    Netware 3270 Tools
  18807. PRODUCT VERSION:    1.5
  18808.      SUPERSEDES:    N/A
  18809.  
  18810.         SYMPTOM:    N/A
  18811.  
  18812. ISSUE/PROBLEM
  18813.  
  18814.     The HLLAPI API functions which allow NULL, BLANK and * for the Presentation Space ID, Function-22 (Find Session Status), Function-31 (Find Field Positon) and Function-32 (Find Field Length) are only valid for the following conditions:
  18815.  
  18816.      i.  NULL and BLANK are valid only if there is an already connected
  18817.          Presentation Space.
  18818.  
  18819.     ii.  * is valid anytime, but refers to the DOS session (which is
  18820.          meaningless in our implementation)
  18821.  
  18822. SOLUTION   N/A
  18823.  
  18824.  
  18825.  
  18826.  
  18827. FYI:    Misprint in the Documentation
  18828.                                      FYI
  18829.  
  18830. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18831.  
  18832.           TITLE:    Misprint in the Documentation
  18833.    DOCUMENT ID#:    FYI.A.2824
  18834.            DATE:    28AUG91
  18835.         PRODUCT:    Netware 3270 Tools
  18836. PRODUCT VERSION:    1.5
  18837.      SUPERSEDES:    N/A
  18838.  
  18839.         SYMPTOM:    N/A
  18840.  
  18841. ISSUE/PROBLEM
  18842.  
  18843.     In the HLLAPI programmer's guide on page 4-37, Function-10 (Query Sessions) is documented as returning the number of host sessions in the length parameter.  The documentation should say that the number returned in the length parameter is the sum of the number of host sessions plus the number of PC session(s) (always 1 in the Novell implementation).  Say for example, when you have 2 host sessions configured, the return length will be 3 and when you have 1 host session configured, the return length will be 2.
  18844.  
  18845.     In page 4-94 of the same guide, Function-32 (Find Field Length) the Presentation space offset for the 'Find' must be specified in a returned code parameter upon entry.
  18846.  
  18847. SOLUTION    N/A
  18848.  
  18849.  
  18850.  
  18851.  
  18852. FYI:    HLLAPI Entry Point in the Memory
  18853.                                      FYI
  18854.  
  18855. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18856.  
  18857.           TITLE:    HLLAPI Entry Point in the Memory
  18858.    DOCUMENT ID#:    FYI.A.2823
  18859.            DATE:    28AUG91
  18860.         PRODUCT:    Netware 3270 Tools
  18861. PRODUCT VERSION:    1.5
  18862.      SUPERSEDES:    N/A
  18863.  
  18864.         SYMPTOM:    N/A
  18865.  
  18866. ISSUE/PROBLEM
  18867.  
  18868.     The HLLAPI program establishes the interrupt vector (0000:0400 - 1024 bytes) table at the storage location 0000:01FC.  Since HLLAPI uses interrupt 0x7Fh or 127 and multiplying by four (four byte addresses) will give us 0x1FC or 508, you will see a four byte address at 0:1FC which is a segment and the offset of the HLLAPI.EXE program.  In this example, the address of the TSR is 4E21:2C70 and that is where the HLLAPI's actual entry point starts.  If you subtract 3 bytes off offset 2C70, at 2C6D you will see the signature "CXI" which is the name of the company that Novell has bought.  So every time your LIM (Language Interface Module) invokes HLLAPI.EXE, it checks for the "CXI" signature at the above address location in the interrupt vector table by doing a 'strcmp'.  Upon successful comparison the HLLAPI.EXE is loaded.  The September Bullets article will give you a detailed description.
  18869.  
  18870. SOLUTION    N/A
  18871.  
  18872.  
  18873.  
  18874.  
  18875. FYI:    GetOSVersionInfo Documentation
  18876.                                      FYI
  18877.  
  18878. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18879.  
  18880.           TITLE:    GetOSVersionInfo Documentation
  18881.    DOCUMENT ID#:    FYI.A.1519
  18882.            DATE:    28AUG91
  18883.         PRODUCT:    NetWare C Interface DOS
  18884. PRODUCT VERSION:    1.2
  18885.      SUPERSEDES:    N/A
  18886.  
  18887.         SYMPTOM:    The structure defined in the manual does not match the
  18888.                     actual definition in the header file.
  18889.  
  18890. ISSUE/PROBLEM
  18891.  
  18892.     The diagnostic call GetOSVersionInfo documentation (July 1990 edition), page 7-56, shows an OSVersionStruct as the following:
  18893.  
  18894.           BYTE   machineID
  18895.           char   *OSText
  18896.           char   *OSVersion
  18897.           char   *hardwareTypeText
  18898.  
  18899.     However, the structure is actually defined in DIAG.H as follows:
  18900.  
  18901.           BYTE   machineID;
  18902.           char   *versionData;
  18903.  
  18904.     The version Data string contains the OSText, OSVersion, and hardware Type Text fields separated by binary 0's.
  18905.  
  18906. SOLUTION    N/A
  18907.  
  18908.  
  18909.  
  18910.  
  18911. FYI:    Queue Jobs and User disk restrictions
  18912.                                      FYI
  18913.  
  18914. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18915.  
  18916.           TITLE:    Queue Jobs and User disk restrictions
  18917.    DOCUMENT ID#:    FYI.A.2627
  18918.            DATE:    23AUG91
  18919.         PRODUCT:    C Interface
  18920. PRODUCT VERSION:    1.2x
  18921.      SUPERSEDES:    N/A
  18922.         SYMPTOM:    N/A
  18923.  
  18924. ISSUE/PROBLEM
  18925.  
  18926.     When a user has their disk space restricted and they are trying to submit a queue job (for a queue job server, not the Novell print server), the job gets created with 0 bytes if their disk space was exceeded.  No error indications are encountered through the creation of the job.
  18927.  
  18928.     This problem was duplicated on NW 3.11; it may be a shell problem (possibly a little deeper).  The indication is that the Job does not take higher privileges than the user, thus incorrectly creating the job.  It would seem that the Job creation should not be limited by a user's disk spaced since it should have higher rights in maintaining the queue jobs.
  18929.  
  18930.     The calls used to test this are the C-Interface calls, CreateJobandOpenFile, CloseFileAndStartQueueJob, and the 'C' library function 'write'.  All calls returned a successful return code.
  18931.  
  18932. SOLUTION    N/A
  18933.  
  18934.  
  18935.  
  18936.  
  18937. FYI:    AFPScan & GetFileInformation bugs.
  18938.                                      FYI
  18939.  
  18940. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18941.  
  18942.           TITLE:    AFPScan & GetFileInformation bugs.
  18943.    DOCUMENT ID#:    FYI.A.2626
  18944.            DATE:    23AUG91
  18945.         PRODUCT:    C Interface for Windows
  18946. PRODUCT VERSION:    1.2x SDK
  18947.      SUPERSEDES:    N/A
  18948.         SYMPTOM:    N/A
  18949.  
  18950. ISSUE/PROBLEM
  18951.  
  18952.     The functions AFPScanFileInformation and AFPGetFileInformation do not work correctly on all but the first call.  The first call returns correct information, but the next call fails with an error 156 (invalid path) or 255 (which is anything).  The 156 occurs when the first file is a MAC created file (using the AFPCreateFile API), and when the first file is a normal DOS file the error is 255.
  18953.  
  18954. SOLUTION    N/A
  18955.  
  18956.  
  18957.  
  18958.  
  18959. FYI:    WINDOWS, Making IPX/SPX calls without the shell being loaded
  18960.                                      FYI
  18961.  
  18962. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18963.  
  18964.           TITLE:    WINDOWS, Making IPX/SPX calls without the shell being loaded
  18965.    DOCUMENT ID#:    FYI.A.2904
  18966.            DATE:    21AUG91
  18967.         PRODUCT:    NetWare C for Windows
  18968. PRODUCT VERSION:    SDK v1.22
  18969.      SUPERSEDES:    N/A
  18970.         SYMPTOM:    N/A
  18971.  
  18972. ISSUE/PROBLEM
  18973.  
  18974.     Doing IPX/SPX calls under Windows without the shell being loaded is possible.  When you load the shell, Windows in turn loads the NETWARE.DRV, which is Windows' entry point into the shell.  If you do not load the shell, Windows will NOT load the NETWARE.DRV.  In some cases when you do not have a NetWork file server and you only have two workstations you can still send packets between stations by making your normal IPX/SPX calls using the Windows API/SDK.  But, you must make sure that you are not making any calls in your program that will reference any other DLL, except the IPXSPX.DLL and you must make sure that you are not importing any other DLL in the .DEF file except the IPXSPX.DLL.  Windows will load any DLLs that you have under your IMPORT statement in the def file, regardless if the function call is being used in your code or not.
  18975.  
  18976. SOLUTION    N/A
  18977.  
  18978.  
  18979.  
  18980.  
  18981. FYI:    OS/2, The correct numbers of the LPT PORTS.
  18982.                                      FYI
  18983.  
  18984. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  18985.  
  18986.           TITLE:    OS/2, The correct numbers of the LPT PORTS.
  18987.    DOCUMENT ID#:    FYI.A.2903
  18988.            DATE:    21AUG91
  18989.         PRODUCT:    OS/2 SDK
  18990. PRODUCT VERSION:    1.3a
  18991.      SUPERSEDES:    N/A
  18992.         SYMPTOM:    N/A
  18993.  
  18994. ISSUE/PROBLEM
  18995.  
  18996.     When using the NWSpoolStarCapture(), you can only pass the number of the affected local LPT port, from LPT:1 to LPT:3.  Although OS/2 supports multiple LPT ports from LPT:1 to LPT:9, the NWSpoolStarCapture() will only support LPT:1 to LPT:3.  Any higher number will cause an error.
  18997.  
  18998. SOLUTION    N/A
  18999.  
  19000.  
  19001.  
  19002.  
  19003. FYI:    Network Semaphores and NLMs
  19004.                                      FYI
  19005.  
  19006. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19007.  
  19008.           TITLE:    Network Semaphores and NLMs
  19009.    DOCUMENT ID#:    FYI.A.3121
  19010.            DATE:    19AUG91
  19011.         PRODUCT:    Network C for NLMs
  19012. PRODUCT VERSION:    All Versions
  19013.      SUPERSEDES:    N/A
  19014.         SYMPTOM:    N/A
  19015.  
  19016. ISSUE/PROBLEM
  19017.  
  19018.     The WaitOnSemaphore() API in the NLM environment temporarily disables the current connection number on which it is issued.  This can pose a problem if the NLM thread group has set its current connection to that of a client before making the call.  If this happens, the client will be blocked out from getting file service requests until the unblock (i.e. WaitOnSemaphore returns) occurs.  If the delay is substantial, the client will encounter the "Error sending/receiving on network" critical error.
  19019.  
  19020. SOLUTION
  19021.  
  19022.     Have an NLM allocate connection numbers of its own for doing any network semaphore activity.  In fact, a different connection should be used for each thread group that uses network semaphores.  Be cautious of using connection zero for network semaphores.  If a semaphore blocks, all other NLMs in the system are preventing from doing any type of API that requires an enabled connection number.
  19023.  
  19024.  
  19025.  
  19026.  
  19027. FYI:    Debug Server out of file handles error message
  19028.                                      FYI
  19029.  
  19030. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19031.  
  19032.           TITLE:    Debug Server out of file handles error message
  19033.    DOCUMENT ID#:    FYI.A.3120
  19034.            DATE:    19AUG91
  19035.         PRODUCT:    Network C for NLMs
  19036. PRODUCT VERSION:    SDK(a)
  19037.      SUPERSEDES:    N/A
  19038.         SYMPTOM:    N/A
  19039.  
  19040. ISSUE/PROBLEM
  19041.  
  19042.     If you receive the error message "Debug Server out of file handles" on the 3.x System Console while debugging using either NOVSERV or PARSERV, this means that too many NLMs were autoloaded by the NLM you are debugging.
  19043.  
  19044. SOLUTION
  19045.  
  19046.     Load some of the NLMs you are autoloading from the console prompt, then load your NLM for debugging.
  19047.  
  19048.  
  19049.  
  19050.  
  19051. FYI:    Setting the search mode attributes
  19052.                                      FYI
  19053.  
  19054. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19055.  
  19056.           TITLE:    Setting the search mode attributes
  19057.    DOCUMENT ID#:    FYI.A.3119
  19058.            DATE:    19AUG91
  19059.         PRODUCT:    NetWare C Interface - DOS
  19060. PRODUCT VERSION:    v1.2
  19061.      SUPERSEDES:    21-Jun-91 by David Harris
  19062.         SYMPTOM:    N/A
  19063.  
  19064. ISSUE/PROBLEM
  19065.  
  19066.     The Search Mode attributes for a file are stored in bit positions 0,1 and 2 of the file's extended attributes field.  That's the same field that the transactional, indexed and read/write audit bits are stored.  In a previous FYI, it was mentioned setting these bits for an AFP file, but none of our documentation seems to mention these bit positions.  I did not find it in any of the C Interface DOS Manuals, and it is probably missing from both the Windows and OS/2 documentation.
  19067.  
  19068. SOLUTION    N/A
  19069.  
  19070.  
  19071.  
  19072.  
  19073. FYI:    Debug Symbol Information for NLMs
  19074.                                      FYI
  19075.  
  19076. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19077.  
  19078.           TITLE:    Debug Symbol Information for NLMs
  19079.    DOCUMENT ID#:    FYI.A.3118
  19080.            DATE:    19AUG91
  19081.         PRODUCT:    Network C for NLMs
  19082. PRODUCT VERSION:    SDK(a)
  19083.      SUPERSEDES:    N/A
  19084.         SYMPTOM:    N/A
  19085.  
  19086. ISSUE/PROBLEM
  19087.  
  19088.     If you load your NLM under NOVSERV or PARSERV, and it in turn autoloads other NLMs, symbol information for all autoloaded NLMs will be included for the debugging session.  Of course, this is only true of NLMs linked with WLINK, and containing a DEBUG ALL directive in the link file.
  19089.  
  19090. SOLUTION    N/A
  19091.  
  19092.  
  19093.  
  19094.  
  19095. FYI:    DOS 4.01 Bug Shows up with Btrieve
  19096.                                      FYI
  19097.  
  19098. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19099.  
  19100.           TITLE:    DOS 4.01 Bug Shows up with Btrieve
  19101.    DOCUMENT ID#:    FYI.A.2016
  19102.            DATE:    19AUG91
  19103.         PRODUCT:    Btrieve for DOS
  19104. PRODUCT VERSION:    All
  19105.      SUPERSEDES:    N/A
  19106.         SYMPTOM:    When using Btrieve with DOS 4.01, a couple of customers have run into a bug  with DOS.  The symptoms of the bug will be consistent status 2's when a file's size is within 512 bytes of a 32 meg boundary when a Btrieve file is trying to be expanded.  The bug can also appear with BUTIL -Load, which in this case, no status 2 is returned, but the file size will just stop growing at (approximately) a multiple of 32 meg.  Here is a complete description of the bug:
  19107.  
  19108. ISSUE/PROBLEM
  19109.  
  19110.     The conditions to cause the bug to appear:
  19111.  
  19112.     The bug will appear only when dealing with files larger than 32 megabytes.  This means that a partition larger than 32 megabytes must exits.
  19113.  
  19114.     On the FAT file system, files are written out in "clusters" of sectors.  Sectors are 512 bytes in size, and the number of sectors in a cluster is dependent on the partition size.  A standard 60 megabyte hard drive partitioned into one 60 megabyte partition has 4 sectors per cluster.
  19115.  
  19116.     When writing a large (32 megabytes +) file, the bug will appear at the time that the write crosses the 32 megabyte (file size) boundary.  (This has nothing to do with the partition size, other than it must be larger than 32 megabytes).
  19117.  
  19118.     To make the bug appear, the write before the one that crosses the 32 megabyte boundary must enter the last sector in the cluster before the 32 megabyte boundary.  In the above case (4 sectors per cluster), this means that if the write before the crossing of the 32 megabyte boundary ends in the #1, #2, or #3 sector in the cluster, the bug will not show.  However, if the write ends up in the #4 sector in the cluster (32 megabytes - 1 byte to 32 megabytes - 512 bytes), the bug will appear.
  19119.  
  19120.     What the bug does
  19121.  
  19122.     The bug involves the file size.  If the above circumstances occur, the file is written out to the disk correctly.  However, the file size variable is not updated to reflect the actual size.  Therefore, if you have a file that is larger than 32 megabytes, the file size when you do a "DIR" at the command line will not show the file's correct size.
  19123.  
  19124.     So far, the data has not been corrupted.  Now, when data is added to the end of the file (appended), the file size is not updated again.  Since most programs use the file size to find the end of the file, when they "append" data to the end, they are actually  over-writing the previous data that was beyond the 32 megabyte boundary.  This is where the data corruption occurs. Since the file size is not updated correctly when appending, corruption will occur whenever the file is appended to.
  19125.  
  19126. SOLUTION
  19127.  
  19128.     Fixes for the bug
  19129.  
  19130.     Microsoft does have a patch for this bug.  The patch program provided by Microsoft will patch the binary MSDOS.SYS or IBMDOS.COM file by changing the code and adding no-ops to the code where needed.
  19131.  
  19132.     The patch can be obtained by contacting the reseller from which the customer's DOS was purchased, or from Microsoft at their 900 number.
  19133.  
  19134.  
  19135.  
  19136.  
  19137. FYI:    Btrieve 4.11 and Search Drives
  19138.                                      FYI
  19139.  
  19140. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19141.  
  19142.           TITLE:    Btrieve 4.11 and Search Drives
  19143.    DOCUMENT ID#:    FYI.A.1833
  19144.            DATE:    17AUG91
  19145.         PRODUCT:    Btrieve for DOS
  19146. PRODUCT VERSION:    4.11
  19147.      SUPERSEDES:    N/A
  19148.         SYMPTOM:    N/A
  19149.  
  19150. ISSUE/PROBLEM
  19151.  
  19152.     Btrieve for DOS version 4.11 *will* use a search drive to find files it is trying to open.  Using a search drive with version 5.x will not be valid. It is not valid because of the inconsistencies which can arise in pre-imaging if a search drive is used.  People that have depended on the search drive will no longer be able to find their files when they upgrade their Btrieve.
  19153.  
  19154. SOLUTION    N/A
  19155.  
  19156.  
  19157.  
  19158.  
  19159. FYI:    Inserting Binary Data from XQL Manager
  19160.                                      FYI
  19161.  
  19162. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19163.  
  19164.           TITLE:    Inserting Binary Data from XQL Manager
  19165.    DOCUMENT ID#:    FYI.A.1832
  19166.            DATE:    17AUG91
  19167.         PRODUCT:    XQL for DOS
  19168. PRODUCT VERSION:    2.11
  19169.      SUPERSEDES:    N/A
  19170.         SYMPTOM:    N/A
  19171.  
  19172. ISSUE/PROBLEM
  19173.  
  19174.     From the manager lever of NWSQL and XQL it is not possible to insert binary data into a string field.  Let's say for instance that you want to place a HEX 12 and HEX 13 into a character string with an INSERT statement. In C you would write:
  19175.  
  19176.      char    sstatement[100];
  19177.      char    buffer[13];
  19178.  
  19179.      buffer[0] = 0x12;
  19180.      buffer[1] = 0x13;
  19181.      buffer[2] = 0x00;
  19182.  
  19183.      sprintf(sstatement, "insert into table (f1) VALUES ('%s')",buffer);
  19184.  
  19185.      status = XQLCompile(cursor, strlen(sstatement), sstatement);
  19186.  
  19187.     Here you have inserted binary data into the field, f1.  When the insert takes place it will be inserted as a space.  XQL will convert all non-printable characters to a space.
  19188.  
  19189. SOLUTION    N/A
  19190.  
  19191.  
  19192.  
  19193.  
  19194. FYI:    NDSPX.ZIP
  19195.                                      FYI
  19196.  
  19197. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19198.  
  19199.           TITLE:    NDSPX.ZIP
  19200.    DOCUMENT ID#:    FYI.P.9475
  19201.            DATE:    16AUG91
  19202.         PRODUCT:    NetWare
  19203. PRODUCT VERSION:    v2.2 v2.15
  19204.      SUPERSEDES:    NA
  19205.  
  19206.         SYMPTOM:    NA
  19207.  
  19208. ISSUE/PROBLEM
  19209.  
  19210.     Increasing SPX connections on a Nondedicated Server's DOS process above 15.
  19211.  
  19212. SOLUTION
  19213.  
  19214.     Apply NDSPX.ZIP available on NetWire.
  19215.  
  19216.     CHGSPX.EXE:
  19217.  
  19218.     This is a menu driven utility and contains instructions on how the program works.  This program will configure the .obj files for ADV NetWare V2.15C and V2.2 so that the DOS process on a non dedicated file server versions 2.15C and 2.2(5,10,50,100) will support more than 15 SPX CONNECTIONS.  Since it is menu driven, executing chgspx.exe will not effect the system until the user specifies the modifications to be made. This patch may be used on the 5, 10, 50, and 100 user versions of NetWare 286 V2.2.
  19219.  
  19220.     SPXCOUNT.EXE:
  19221.  
  19222.     This is a utility that determines the number of SPX connections that a workstation is configured for.
  19223.  
  19224.  
  19225.  
  19226.  
  19227. FYI:    C Interface and AFP: renaming the short name
  19228.                                      FYI
  19229.  
  19230. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19231.  
  19232.           TITLE:    C Interface and AFP: renaming the short name
  19233.    DOCUMENT ID#:    FYI.A.2628
  19234.            DATE:    16AUG91
  19235.         PRODUCT:    C Interface
  19236. PRODUCT VERSION:    1.2x
  19237.      SUPERSEDES:    N/A
  19238.         SYMPTOM:    N/A
  19239.  
  19240. ISSUE/PROBLEM
  19241.  
  19242.     In trying to rename only the short name (DOS name) of an AFP file (MAC created file) the following code path may be used.  Note that trying the normal 'rename' function does not work on MAC files.  The function destroys the original MAC description of the file, and it will no longer look like a file created by the MAC API's.
  19243.  
  19244.     1)    AFPScanFileInformation     - get information on the file, including the long and short names.
  19245.  
  19246.     2)    AFPDirectoryEntry         - if it returns NON-NULL then it was a file created by the MAC (AFPCreateFile).
  19247.  
  19248.     3)    ScanFileEntry             - to obtain the sequence number for the file (file server index number for the file).
  19249.  
  19250.     4)    SetEntry                 - using the sequence number from ScanFileEntry, set the modification bits to M_MODIFY_NAME, copy the new name, and set the new name length, then call the function.  This preserves the MAC File description and it remains tagged as a MAC created file.
  19251.  
  19252. SOLUTION    N/A
  19253.  
  19254.  
  19255.  
  19256.  
  19257. FYI:    Xtrieve PLUS v4.10 Report Option
  19258.                                      FYI
  19259.  
  19260. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19261.  
  19262.           TITLE:    Xtrieve PLUS v4.10 Report Option
  19263.     DOCUMENT ID:    FYI.A.1114
  19264.            DATE:    16AUG91
  19265.         PRODUCT:    Xtrieve PLUS for DOS
  19266. PRODUCT VERSION:    4.10
  19267.      SUPERSEDES:    NA
  19268.  
  19269.         SYMPTOM:    NA
  19270.  
  19271. ISSUE/PROBLEM
  19272.  
  19273.     With Xtrieve PLUS v4.01a, there was a file called XREPORT.OVL which was used for Report Option functionality.  This file is no longer distributed with the 4.10 release, since all of the RO functionality is encompassed in the XTRIEVE.EXE file.
  19274.  
  19275. SOLUTION
  19276.  
  19277.     NA
  19278.  
  19279.  
  19280.  
  19281.  
  19282. FYI:    Server Attachments and the 2.15c Shell
  19283.                                      FYI
  19284.  
  19285. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19286.  
  19287.           TITLE:    Server Attachments and the 2.15c Shell
  19288.    DOCUMENT ID#:    FYI.A.3334
  19289.            DATE:    15AUG91
  19290.         PRODUCT:    NetWare Shell
  19291. PRODUCT VERSION:    2.15c
  19292.      SUPERSEDES:    N/A
  19293.         SYMPTOM:    Workstation loses connection to all previously attached servers.
  19294.  
  19295. ISSUE/PROBLEM
  19296.  
  19297.     The 2.15c NetWare shell does not always reattach itself to the primary server.  If you login to a different server than the server found by the shells nearest server query and then LogoutFromFileServer the shell FileServer tables are cleared.
  19298.  
  19299. SOLUTION
  19300.  
  19301.     Use a different new shell, such as 3.01d.
  19302.  
  19303.  
  19304.  
  19305.  
  19306. FYI:    Disabled Logins
  19307.                                      FYI
  19308.  
  19309. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19310.  
  19311.           TITLE:    Disabled Logins
  19312.    DOCUMENT ID#:    FYI.A.3333
  19313.            DATE:    15AUG91
  19314.         PRODUCT:    NetWare C Interface DOS
  19315. PRODUCT VERSION:    1.2
  19316.      SUPERSEDES:    N/A
  19317.         SYMPTOM:    N/A
  19318.  
  19319. ISSUE/PROBLEM
  19320.  
  19321.     How can you tell if logins have been disabled when issuing the LoginToFileServer API?
  19322.  
  19323. SOLUTION
  19324.  
  19325.     The LoginToFileServer function returns a 254 (Bindery Locked) when logins have been disabled.
  19326.  
  19327.  
  19328.  
  19329.  
  19330. FYI:    DOS 5.00 and TBMI/TASKID
  19331.                                      FYI
  19332.  
  19333. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19334.  
  19335.           TITLE:    DOS 5.00 and TBMI/TASKID
  19336.    DOCUMENT ID#:    FYI.A.3332
  19337.            DATE:    15AUG91
  19338.         PRODUCT:    TBMI
  19339. PRODUCT VERSION:    N/A
  19340.      SUPERSEDES:    N/A
  19341.         SYMPTOM:    N/A
  19342.  
  19343. ISSUE/PROBLEM
  19344.  
  19345.     When should TBMI2 be used with MS DOS 5.00?
  19346.  
  19347.     Do I ever need to use TBMI/TASKID with MS DOS 5.00?
  19348.  
  19349. SOLUTION
  19350.  
  19351.     TBMI2 needs to be loaded when running IPX/SPX based applications in the MS DOS Task Swapper.  There is not an associated TASKID with TBMI2.
  19352.  
  19353.     The original TBMI/TASKID still needs to be loaded when running Windows applications that use IPX/SPX.  TBMI2 can not be loaded with TBMI.  This should not prove to be a problem for developers since MS does not recommend running the Task Swapper and Windows concurrently.
  19354.  
  19355.  
  19356.  
  19357.  
  19358. FYI:    ScanFileInformation
  19359.                                      FYI
  19360.  
  19361. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19362.  
  19363.           TITLE:    ScanFileInformation
  19364.    DOCUMENT ID#:    FYI.A.3331
  19365.            DATE:    15AUG91
  19366.         PRODUCT:    NetWare C Interface DOS
  19367. PRODUCT VERSION:    1.2
  19368.      SUPERSEDES:    N/A
  19369.         SYMPTOM:    The ScanFileInformation function returns information for files where the user does not have rights on a 3.11 file server.
  19370.  
  19371. ISSUE/PROBLEM
  19372.  
  19373.     The ScanFileInformation function will return information for files that the user does not have access to when it is called in the following sequence:
  19374.  
  19375.     1.    ScanFileInformation      (Volume SYS:)  No Rights
  19376.             No Files Found
  19377.     2.    ScanDirectoryInformation (Volume SYS:)  No Rights
  19378.             No Directories Found
  19379.     3.    ScanFileInformation      (Volume VOL1:) R F Rights
  19380.             File Found
  19381.     4.    ScanDirectoryInformation (Volume VOL1:) R F Rights
  19382.             Directory Found
  19383.     5.    ScanFileInformation      (Volume SYS:)  No Rights
  19384.             File Found - Even though the user has no rights
  19385.  
  19386. SOLUTION
  19387.  
  19388.     This has been reported as a bug.
  19389.  
  19390.  
  19391.  
  19392.  
  19393. FYI:    Using SADD & SSEG with Btrieve FAR calls in MS BASIC 7.X
  19394.                                      FYI
  19395.  
  19396. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19397.  
  19398.           TITLE:    Using SADD & SSEG with Btrieve FAR calls in MS BASIC 7.X
  19399.    DOCUMENT ID#:    FYI.A.2104
  19400.            DATE:    15AUG91
  19401.         PRODUCT:    Btrieve for DOS, NetWare Btrieve VAP, NetWare Btrieve NLM
  19402. PRODUCT VERSION:    All Versions
  19403.      SUPERSEDES:    N/A
  19404.         SYMPTOM:    Status 0 returned on GET operations with nothing returned in the data buffer
  19405.  
  19406. ISSUE/PROBLEM
  19407.  
  19408.     When programming with MS BASIC 7.X using FIELD statements to initialize your buffer area for subsequent Btrieve calls, the BC7RBTRV.OBJ interface requires you to split the data buffer parameter into two parts using SADD and SSEG as shown in the following syntax:
  19409.  
  19410.     CALL BTRVFAR(OP%, STAT%, POSBLK$, SADD(DATABUF$), SSEG(DATABUF$), BUFLEN%, KEYBUF$, KEYNUM%)
  19411.  
  19412.     However, many BASIC programmers will do the following:
  19413.      OP% = 12
  19414.      POSBLK$ = SPACE$(128)
  19415.      OPEN "NUL" AS #1 LEN = 821
  19416.      FIELD #1, 821 AS DataBuffer$
  19417.      BUFLEN% = 821
  19418.  
  19419.      DBUF1% = SADD(DataBuffer$)
  19420.      DBUF2% = SSEG(DataBuffer$)
  19421.  
  19422.      CALL BTRVFAR(OP%, STAT%, POSBLK$, DBUF1%, DBUF2%, BUFLEN%, KEYBUF$, 0)
  19423.  
  19424.     This is a correct procedure for making a Btrieve call, however, if the programmer goes on and calls other subroutines etc. and then comes back and makes subsequent Btrieve calls without reinitializing those address pointers with SADD and SSEG, those pointers may be pointing to some other place in memory thus causing Btrieve to return a successful status code but nothing gets returned in the data buffer area. This is because MS BASIC will move strings around in memory whenever it deems necessary.
  19425.  
  19426. SOLUTION
  19427.  
  19428.     To prevent this kind of problem from happening, always include the SADD and SSEG statements within the Btrieve call, so that the address pointers to the data buffer area are always reinitialized at the time the Btrieve call is made.
  19429.  
  19430.  
  19431.  
  19432.  
  19433. FYI:    Btrieve 5.10a and NCOPY
  19434.                                      FYI
  19435.  
  19436. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19437.  
  19438.           TITLE:    Btrieve 5.10a and NCOPY
  19439.    DOCUMENT ID#:    FYI.A.3405
  19440.            DATE:    14AUG91
  19441.         PRODUCT:    Btrieve/NCOPY
  19442. PRODUCT VERSION:    4.10/2.2,3.10
  19443.      SUPERSEDES:    N/A
  19444.         SYMPTOM:    Btrieve file grows to 65k after an NCOPY
  19445.  
  19446. ISSUE/PROBLEM
  19447.  
  19448.     Under the following conditions:
  19449.  
  19450.     1.    If you have a Btrieve that was created specifying pre-allocation.
  19451.     2.    The last 1K remained 00's.
  19452.     3.    You used NCOPY to make a duplicate.
  19453.     4.    The file was .5 Meg or larger.
  19454.  
  19455.     The file would grow by exactly 65k causing probable status 2's when used.
  19456.  
  19457. SOLUTION
  19458.  
  19459.     Problem fixed in v3.11 NCOPY, or you may use v2.15.
  19460.  
  19461.     Note that v3.11 is quite a bit larger in size and there may be a shortage of memory if you shell-out of an application in order to perform an NCOPY.
  19462.  
  19463.  
  19464.  
  19465.  
  19466. FYI:    DOS 5.0 and IBM PC LAN
  19467.                                      FYI
  19468.  
  19469. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19470.  
  19471.           TITLE:    DOS 5.0 and IBM PC LAN
  19472.    DOCUMENT ID#:    FYI.A.3404
  19473.            DATE:    14AUG91
  19474.         PRODUCT:    Btrieve for DOS used with IBM PC LAN
  19475. PRODUCT VERSION:    5.10a
  19476.      SUPERSEDES:    N/A
  19477.         SYMPTOM:    Work Station hangs on wait lock, status 84 on updates.
  19478.  
  19479. ISSUE/PROBLEM
  19480.  
  19481.     Customers using PC LAN ver 1.xx upgraded to DOS 5.0. At that time they received patches to version 1.34. Once this was installed a work station would hang whenever a Btrieve get w/lock was issued. If a lock was not issued, the record would be returned fine but a status 84 was received if they attempted to up date that same record.
  19482.  
  19483. SOLUTION
  19484.  
  19485.     IBM has patched their REDIR50.exe program.
  19486.  
  19487.  
  19488.  
  19489.  
  19490. FYI:    AFP and Search Mode Bits
  19491.                                      FYI
  19492.  
  19493. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19494.  
  19495.           TITLE:    AFP and Search Mode Bits
  19496.    DOCUMENT ID#:    FYI.A.1626
  19497.            DATE:    13AUG91
  19498.         PRODUCT:    C Interface - DOS
  19499. PRODUCT VERSION:    1.2
  19500.      SUPERSEDES:    N/A
  19501.         SYMPTOM:    N/A
  19502.  
  19503. ISSUE/PROBLEM
  19504.  
  19505.     AFPScanFileInformation and AFPGetFileInformation do not return the search mode bits in the attribute field.
  19506.  
  19507. SOLUTION
  19508.  
  19509.     Use GetExtendedFileAttributes to obtain the correct extended attributes (including the search mode bits) and then use the AFPSetFileInformation call to set these attributes.
  19510.  
  19511.  
  19512.  
  19513.  
  19514. FYI:    Btrieve for MS-Windows BETA
  19515.                                      FYI
  19516.  
  19517. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19518.  
  19519.           TITLE:    Btrieve for MS-Windows BETA
  19520.    DOCUMENT ID#:    FYI.A.1622
  19521.            DATE:    13AUG91
  19522.         PRODUCT:    Btrieve for MS-Windows
  19523. PRODUCT VERSION:    5.10a
  19524.      SUPERSEDES:    N/A
  19525.         SYMPTOM:    N/A
  19526.  
  19527. ISSUE/PROBLEM
  19528.  
  19529.     If EXEHDR (supplied with MS C v6.0) is executed on the WBTRCALL.DLL from the RELEASED version of Btrieve for MS-Windows, the description field reports "Btrieve V5.11 DLL for MS-Windows Beta Version."  This is NOT a BETA version; it's the real stuff.
  19530.  
  19531. SOLUTION    N/A
  19532.  
  19533.  
  19534.  
  19535.  
  19536. FYI:    BSPXSTUB.NLM - Why use it?
  19537.                                      FYI
  19538.  
  19539. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19540.  
  19541.           TITLE:    BSPXSTUB.NLM - Why use it?
  19542.    DOCUMENT ID#:    FYI.A.1109
  19543.            DATE:    13AUG91
  19544.         PRODUCT:    NetWare Btrieve NLM
  19545. PRODUCT VERSION:    5.10+
  19546.      SUPERSEDES:    N/A
  19547.         SYMPTOM:    N/A
  19548.  
  19549. ISSUE/PROBLEM
  19550.  
  19551.     Bspxstub is an NLM which is used by the Bconsole NLM, when Bspxcom is not loaded at the file server.  Bspxcom normally provides SPX packet information to the Bconsole NLM.  In the event that Bspxcom is not loaded, Bspxstub is used to obtain SPX packet information from Brouter.  So, if Bspxcom is not loaded, and you want to use Bconsole to monitor file server resources, you must have both Bspxstub and Brouter loaded.
  19552.  
  19553.     ================================================================
  19554.     Figure 1.  Figure 2.                                       (spx)
  19555.     BCONSOLE.NLM                       BCONSOLE.NLM-----BSPXSTUB.NLM
  19556.        |      \                          |                   |
  19557.        |      (spx)                      |                   |
  19558.        |         \                       |                   |
  19559.      (res)       BSPXCOM.NLM           (res)           BROUTER.NLM
  19560.        |              |                  |                   |
  19561.         \             |                   \                  |
  19562.           \           |                     \                |
  19563.             -----BTRIEVE.NLM                  ----------BTRIEVE.NLM
  19564.     ===============================    =================================
  19565.     * res - resources from the Btrieve NLM, such as open files, locks, etc.* spx - SPX packet information being transmitted to/from the file server.
  19566.  
  19567.     BSPXSTUB.NLM is required by BCONSOLE.NLM if BSPXCOM.NLM is not loaded, because it resolves external references for BCONSOLE.NLM which would normally be resolved by BSPXCOM.NLM.
  19568.  
  19569.     Why wouldn't BSPXCOM be loaded at the file server all of the time?
  19570.  
  19571.     One reason for not loading Bspxcom would be that no clients (workstations) are making requests to the Btrieve NLM at the file server.  Only other NLM's which are running at the file server are making Btrieve calls.
  19572.  
  19573.     One such issue that has been brought up by NetWare SQL developers in the past, has been the fact that if security is installed at the NetWare SQL level, then users (clients) can still access the database files through Btrieve requests (unless an owner name has been assigned to the Btrieve files).  To restrict clients from making requests directly to Btrieve, thus getting around NetWare SQL's established security mechanisms, one could load the Btrieve and NetWare SQL NLM's without Bspxcom NLM.
  19574.  
  19575.     BSPXSTUB.NLM is not described in any documentation that we distribute, except for a little tidbit in the README.DOC which went out with NetWare Btrieve v5.15 for NetWare 3.11.  This information should be added to the NetWare Btrieve NLM Installation and Operations Manual.
  19576.  
  19577. SOLUTION    N/A
  19578.  
  19579.  
  19580.  
  19581.  
  19582. FYI:    Printing Reports with a Large Form Width
  19583.                                      FYI
  19584.  
  19585. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19586.  
  19587.           TITLE:    Printing Reports with a Large Form Width
  19588.     DOCUMENT ID:    FYI.A.3010
  19589.            DATE:    12AUG91
  19590.         PRODUCT:    Xtrieve PLUS
  19591. PRODUCT VERSION:    4.10
  19592.      SUPERSEDES:    NA
  19593.  
  19594.         SYMPTOM:    Printout from reports with form width larger than 80 characters might appear to be garbled.
  19595.  
  19596. ISSUE/PROBLEM
  19597.  
  19598.     If you try to print a report to a file and set the Form Width (from Report, Dimensions menu) to a larger number than the default value, the report might not show up the way you expect it to.  The last few words of each line might be printed vertically.  There are two ways you can avoid this problem.  Either use the print option to configure Xtrieve, or set the printer switch to NO.
  19599.  
  19600. SOLUTION
  19601.  
  19602.     You can use one of the following methods to avoid this problem:
  19603.     I)   Configure Xtrieve for your printer
  19604.            1)    Go to Configure - Print
  19605.            2) Select Database from the menu; and specify XTRIEVE.PDB (or
  19606.               complete path + XTRIEVE.PDB)
  19607.            3) Select Printer and choose the desired printer
  19608.            4) Select Device and choose "LETTER" or any other format that
  19609.               you like (refer to Xtrieve manual, page 10-8)
  19610.            5) Go back to the Report menu
  19611.            6) Select Attribute, and choose Compress
  19612.            7) Print your report
  19613.  
  19614.     II)  Disable Printer
  19615.            1) Go to Configure - Switches
  19616.            2) Select Printer, and set it to NO.
  19617.  
  19618.  
  19619.  
  19620.  
  19621. FYI:    Changing the Btrieve 7B interrupt
  19622.                                      FYI
  19623.  
  19624. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19625.  
  19626.           TITLE:    Changing the Btrieve 7B interrupt
  19627.    DOCUMENT ID#:    FYI.A.1017
  19628.            DATE:    12AUG91
  19629.         PRODUCT:    Btrieve for DOS
  19630. PRODUCT VERSION:    4.11x, 5.00x, & 5.10x
  19631.      SUPERSEDES:    N/A
  19632.         SYMPTOM:    N/A
  19633.  
  19634. ISSUE/PROBLEM
  19635.  
  19636.     When attempting to change the 7b interrupt used by Btrieve you will discover more than one occurrence of it.  The question is, which of the 7b interrupts should you change and which should you leave alone.
  19637.  =========================================================================
  19638.  Under Btrieve for DOS v4.11x use Debug to:
  19639.  
  19640.  ren btrieve.exe btrieve <cr>
  19641.  debug btrieve <cr>
  19642.  -r <cr>                 ;get the value of the cx register.
  19643.  -s 0L[cx] 7b 25 <cr>    ;search for "set interrupt" where [cx] is value
  19644.                          ;of cx register obtained above.
  19645.     ssss:xxxx            ;the search returns TWO addresses
  19646.     ssss:yyyy            ;
  19647.  -e ssss:xxxx            ;edit first address to change interrupt
  19648.     ssss:xxxx 7b.        ;address one is returned showing the value of 7b
  19649.                          ;Prompt is waiting for the new interrupt value.
  19650.                 __ <cr>  ;Enter the value of the new interrupt.
  19651.  -e ssss:yyyy            ;edit second address to change interrupt
  19652.     ssss:yyyy 7b.        ;address two is returned showing the value of 7b.
  19653.                          ;Prompt is waiting for the new interrupt value.
  19654.                 __ <cr>  ;Enter the value of the new interrupt.
  19655.  -s 0L[cx] 7b 35 <cr>    ;search again, for "check interrupt" where [cx]
  19656.                          ;is value of cx register obtained above.
  19657.     ssss:xxxx            ;this search returns ONE address
  19658.  -e ssss:xxxx            ;edit that address to change interrupt
  19659.     ssss:xxxx 7b.        ;address is returned showing the value of 7b.
  19660.                          ;Prompt is waiting for the new interrupt value.
  19661.                 __ <cr>  ;Enter the value of the new interrupt.
  19662.  -w <cr>                 ;write changes to disk
  19663.  -q <cr>                 ;quit debug
  19664.  ren btrieve btrieve.exe <cr>
  19665.  =========================================================================
  19666.      Under Btrieve for DOS v5.00x use Debug to:
  19667.  
  19668.  ren btrieve.exe btrieve <cr>
  19669.  debug btrieve <cr>
  19670.  -r <cr>                 ;get the value of the cx register.
  19671.  -s 0L[cx] 7b 25 <cr>    ;search for "set interrupt" where [cx] is value
  19672.                          ;of cx register obtained above.
  19673.     ssss:xxxx            ;the search returns TWO addresses
  19674.     ssss:yyyy            ;
  19675.  -e ssss:xxxx            ;edit first address to change interrupt
  19676.     ssss:xxxx 7b.        ;address one is returned showing the value of 7b.
  19677.                          ;Prompt is waiting for the new interrupt value.
  19678.                 __ <cr>  ;Enter the value of the new interrupt.
  19679.  -e ssss:yyyy            ;edit second address to change interrupt
  19680.     ssss:yyyy 7b.        ;address two is returned showing the value of 7b.
  19681.                          ;Prompt is waiting for the new interrupt value.
  19682.                 __ <cr>  ;Enter the value of the new interrupt.
  19683.  -s 0L[cx] 7b 35 <cr>    ;search for "check interrupt" where [cx] is value
  19684.                          ;of cx register obtained above.
  19685.     ssss:xxxx            ;the search returns TWO address
  19686.     ssss:yyyy            ;
  19687.  -e ssss:yyyy            ;edit the SECOND address of "check interrupt"
  19688.     ssss:yyyy 7b.        ;that address is returned showing the value of 7b.
  19689.                          ;Prompt is waiting for the new interrupt value.
  19690.                 __ <cr>  ;Enter the value of the new interrupt.
  19691.  -w <cr>                 ;write changes to disk
  19692.  -q <cr>                 ;quit debug
  19693.  ren btrieve btrieve.exe <cr>
  19694.  =========================================================================
  19695.      Under Btrieve for DOS v5.10x use Debug to:
  19696.  
  19697.  ren btrieve.exe btrieve <cr>
  19698.  debug btrieve <cr>
  19699.  -r <cr>                 ;get the value of the cx register.
  19700.  -s 0L[cx] 7b 25 <cr>    ;search for "set interrupt" where [cx] is value
  19701.                          ;of cx register obtained above.
  19702.    ssss:xxxx             ;the search returns THREE addresses
  19703.    ssss:yyyy             ;
  19704.    ssss:zzzz             ;DO NOT EDIT THE THIRD ADDRESS !!!
  19705.                          ;
  19706.  -e ssss:xxxx            ;edit first address to change interrupt
  19707.     ssss:xxxx 7b.        ;address one is returned showing the value of 7b.
  19708.                          ;Prompt is waiting for the new interrupt value.
  19709.                 __ <cr>  ;Enter the value of the new interrupt.
  19710.  -e ssss:yyyy            ;edit second address to change interrupt
  19711.     ssss:yyyy 7b.        ;address two is returned showing the value of 7b.
  19712.                          ;Prompt is waiting for the new interrupt value.
  19713.                 __ <cr>  ;Enter the value of the new interrupt.
  19714.  -s 0L[cx] 7b 35 <cr>    ;search for "check interrupt" where [cx] is value
  19715.                          ;of cx register obtained above.
  19716.     ssss:xxxx            ;the search returns ONE address
  19717.  -e ssss:xxxx            ;edit that address to change interrupt
  19718.     ssss:xxxx 7b.        ;that address is returned showing the value of 7b.
  19719.                          ;Prompt is waiting for the new interrupt value.
  19720.                 __ <cr>  ;Enter the value of the new interrupt.
  19721.  -w <cr>                 ;write changes to disk
  19722.  -q <cr>                 ;quit debug
  19723.  ren btrieve btrieve.exe
  19724.  =========================================================================
  19725.  
  19726.     It will also be necessary to change the "interrupt check" in the language interface your code is using.  If you are using Turbo Pascal, Turbo BASIC, LogiTec Modula-2/86, MS-C, MS IBM-c for OS/2, Turbo C, Watcom C, Lattice C, Mark Williams C, DeSmet C, or either of our assembly interfaces for COBOL or Fortran, you may make the change to the source code provided.  If you use a language for which the interface is an .OBJ file, it will be necessary to make the patch with debug, following the debug procedures described above and search for 7b 35 and cd 7b.  Change the 7b in both cases to what ever your new interrupt was changed to for your Btrieve executable.
  19727.  
  19728.     It will also be necessary to change the interrupt on BUTIL.EXE.
  19729.  
  19730. SOLUTION    N/A
  19731.  
  19732.  
  19733.  
  19734.  
  19735. FYI:    Bconsole file lock info meaning
  19736.                                      FYI
  19737.  
  19738. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19739.  
  19740.           TITLE:    Bconsole file lock info meaning
  19741.    DOCUMENT ID#:    FYI.A.1016
  19742.            DATE:    12AUG91
  19743.         PRODUCT:    BCONSOLE.NLM & BCONSOLE.EXE
  19744. PRODUCT VERSION:    5.15
  19745.      SUPERSEDES:    N/A
  19746.         SYMPTOM:    N/A
  19747.  
  19748. ISSUE/PROBLEM
  19749.  
  19750.     After entering Bconsole you may select 'User List' from the main menu. It will then display all active users with:
  19751.  
  19752.                 ░╔═════════════════════════════════════════════╗░
  19753.                 ░║ C.ID  User       Network    Node Address    ║░
  19754.                 ░╠═════════════════════════════════════════════╣░
  19755.                 ░║ │  2  SUPERVISOR ABBBDDDD : 00001B03635F    ║░
  19756.                 ░╚═════════════════════════════════════════════╝░
  19757.  
  19758.     Select the user your interested in by positioning your cursor on the Username and pressing enter.  Bconsole will then display the user file list with:
  19759.  
  19760.  ░╔══════════════════════════════════════════════════════════════════════╗░
  19761.  ░║ User File List                                           Locks   Tr? ║░
  19762.  ░╠══════════════════════════════════════════════════════════════════════╣░
  19763.  ░║ │SYS:JESTEWAR/TEST.DAT                                   1(M)    N   ║░
  19764.  ░╚══════════════════════════════════════════════════════════════════════╝░
  19765.  
  19766.  
  19767.     Under Locks you may see either a 0, 1(A), or 1(M).  If you see a 0 there are no locks in effect for that file by that user.  If you see x(A) under Locks there are x number of Single Wait/NoWait Locks in effect for that file by that user. If you see x(M) under Locks there are x number of Multiple Wait/NoWait Locks in effect for that file by that user.
  19768.  
  19769. SOLUTION    N/A
  19770.  
  19771.  
  19772.  
  19773.  
  19774. FYI:    Btrieve Performance & Page Size
  19775.                                      FYI
  19776.  
  19777. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19778.  
  19779.           TITLE:    Btrieve Performance & Page Size
  19780.    DOCUMENT ID#:    FYI.A.1018
  19781.            DATE:    09AUG91
  19782.         PRODUCT:    Btrieve
  19783. PRODUCT VERSION:    All versions
  19784.      SUPERSEDES:    N/A
  19785.         SYMPTOM:    N/A
  19786.  
  19787. ISSUE/PROBLEM
  19788.  
  19789.     Page sizes for Btrieve files which are either 512 or even multiples of 1K (1024, 2048, 4096) result in higher performance because they correspond to disk blocks sizes.  When using other valid page sizes (1536, 2560, 3072, or 3584), reads do not fall on even boundaries and so a given read could span two blocks and require two "disk accesses".  This is purely a performance consideration.
  19790.  
  19791. SOLUTION    N/A
  19792.  
  19793.  
  19794.  
  19795.  
  19796. FYI:    Brequest retry loop & documentation error
  19797.                                      FYI
  19798.  
  19799. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19800.  
  19801.           TITLE:    Brequest retry loop & documentation error
  19802.    DOCUMENT ID#:    FYI.A.1015
  19803.            DATE:    09AUG91
  19804.         PRODUCT:    BREQUEST.EXE
  19805. PRODUCT VERSION:    v5.xx
  19806.      SUPERSEDES:    N/A
  19807.         SYMPTOM:    N/A
  19808.  
  19809. ISSUE/PROBLEM
  19810.  
  19811.     A customer recently pointed out to me that in our documentation for Btrieve there is a statement that:
  19812.  
  19813.     "Figure 3.2 illustrates how Application 1 using wait transaction control can interact with Application 2 using the passive method of concurrency. When Application 1 reads a file within a transaction, Application 2 can still read the file outside of a transaction, but its update waits until the transaction ends."
  19814.  
  19815.     This is NOT true!  When Application 2 attempts the update it will receive a Status 85, "File in use" error.  Btrieve returns control to the calling program for it to decide what to do at that point.  If, however, Application 2 had started its own wait transaction before issuing the update, it would wait for Application 1 to end or abort it's transaction and then try to complete the update.
  19816.  
  19817.     According to development this is the only scenario in which Brequest will not return control to the calling application.  It will sit in this retry loop indefinitely.  This is why we recommend to our developers that they spend as little time as possible in a transaction.
  19818.  
  19819.     This has been submitted as a documentation bug.  It can be found on page 3-15 of the Btrieve Programmer's Manual April '90 edition. You may want to make note of this in your manual for future reference.
  19820.  
  19821. SOLUTION    N/A
  19822.  
  19823.  
  19824.  
  19825.  
  19826. FYI:    LU Local Addresses and Session
  19827.                                      FYI
  19828.  
  19829. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19830.  
  19831.           TITLE:    LU Local Addresses and Session
  19832.    DOCUMENT ID#:    FYI.A.2820
  19833.            DATE:    08AUG91
  19834.         PRODUCT:    NetWare LU6.2 tools
  19835. PRODUCT VERSION:    1.0
  19836.      SUPERSEDES:    N/A
  19837.         SYMPTOM:    N/A
  19838.  
  19839. ISSUE/PROBLEM
  19840.  
  19841.     The LU local addresses range from 02 hex to a max of FE.  If the specific LU characteristics are required for the Host session, the LU addresses defined to the host and the LU addresses configured in the gateway server customization program (Local Address Type Definition panels and Local Address Pool Definition panels must match).  These parameters are all defined in the VTAM as "MODETAB=" and "DLOGMOD=".  A printer is defined as an LU Type 1 or 3, and a display device is an LU Type 2 in a 3270 environment.  In a 5250 environment, a printer is LU Type 7 and a display device is LU Type 4.
  19842.  
  19843. SOLUTION    N/A
  19844.  
  19845.  
  19846.  
  19847.  
  19848. FYI:    Setting up your PC while installing SNA Gateway
  19849.                                      FYI
  19850.  
  19851. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19852.  
  19853.           TITLE:    Setting up your PC while installing SNA Gateway
  19854.    DOCUMENT ID#:    FYI.A.2819
  19855.            DATE:    08AUG91
  19856.         PRODUCT:    NetWare
  19857. PRODUCT VERSION:    SNA/Gateway
  19858.      SUPERSEDES:    N/A
  19859.         SYMPTOM:    N/A
  19860.  
  19861. ISSUE/PROBLEM
  19862.  
  19863.     You may need to add or modify certain options in your CONFIG.SYS and SHELL.CFG files as part of the gateway installation process.  The FILES option in CONFIG.SYS should be set to 20 to avoid receiving a "File Not Found" error message when using the gateway.  In addition, you also need to add STACKS=64,256 to your CONFIG.SYS file.  In SHELL.CFG, set the SPX Connections = n to the maximum number of physical workstations using the gateway server plus three.  The default is 15 connections. If you have more than 40 workstations accessing the gateway simultaneously, specify SPX Abort Timeout=2000.
  19864.  
  19865. SOLUTION    N/A
  19866.  
  19867.  
  19868.  
  19869.  
  19870. FYI:    Versions and Previous Names in 3270 Lan Workstation and
  19871.                                      FYI
  19872.  
  19873. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19874.  
  19875.           TITLE:    Versions and Previous Names in 3270 Lan Workstation and
  19876.    DOCUMENT ID#:    FYI.A.2818
  19877.            DATE:    08AUG91
  19878.         PRODUCT:    NetWare 3270 Lan Workstation and SNA/Gateway
  19879. PRODUCT VERSION:    N/A
  19880.      SUPERSEDES:    N/A
  19881.         SYMPTOM:    N/A
  19882.  
  19883. ISSUE/PROBLEM
  19884.  
  19885.     In order to keep track of the current names and versions of the SNA Gateway and LAN Workstation for DOS software, I have listed the following for reference:
  19886.  
  19887.     WSCUT    : PCOX/One Coax, v1.1
  19888.     WSMULTI  : PCOX/Two, PCOX/Multi, v1.1
  19889.     WSLAN    : PCOX/One,Two,Multi, v1.1, 1.2, 2.0
  19890.  
  19891.     NetWare SNA Gateway : PCOX/GW-3270 (Coax, Coax-Mux, SDLC, Remote-Assist,
  19892.                                         Token-Ring, IRMA versions) 1.3, 1.3.G
  19893.  
  19894.     NetWare SNA Gateway ELS : PCOX/GW-3270 (Coax, SDLC, IRMA versions), 1.2
  19895.  
  19896.     The above versions start from oldest to newest.  The newer versions can be found in data library #9 or 16 on Compuserve.
  19897.  
  19898. SOLUTION    N/A
  19899.  
  19900.  
  19901.  
  19902.  
  19903. FYI:    Problem With Find Field Length API in HLLAPI v2.2.f.3
  19904.                                      FYI
  19905.  
  19906. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19907.  
  19908.           TITLE:    Problem With Find Field Length API in HLLAPI v2.2.f.3
  19909.    DOCUMENT ID#:    FYI.A.2817
  19910.            DATE:    08AUG91
  19911.         PRODUCT:    NetWare 3270 toolkit
  19912. PRODUCT VERSION:    1.5
  19913.      SUPERSEDES:    N/A
  19914.         SYMPTOM:    Find Field Length does return the right length.
  19915.  
  19916. ISSUE/PROBLEM
  19917.  
  19918.     Function-32 (Find Field Length) does not return the right length when you try to find the length of the line #24 which is right above the OIA (Operator Information Area).  It always returns a zero length.
  19919.  
  19920. SOLUTION
  19921.  
  19922.     It has just been fixed by Sunnyvale Engineering and the new HLLAPI.EXEv2.2.f.9 is out.  So the customers who are having problems with this function can get the new HLLAPI.EXE.
  19923.  
  19924.  
  19925.  
  19926.  
  19927. FYI:    GWSTATUS Utility
  19928.                                      FYI
  19929.  
  19930. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19931.  
  19932.           TITLE:    GWSTATUS Utility
  19933.    DOCUMENT ID#:    FYI.A.2816
  19934.            DATE:    08AUG91
  19935.         PRODUCT:    NETWARE SNA/Gateway
  19936. PRODUCT VERSION:    1.3.G
  19937.      SUPERSEDES:    N/A
  19938.         SYMPTOM:    N/A
  19939.  
  19940. ISSUE/PROBLEM
  19941.  
  19942.     The GWSTATUS utility is designed to provide the important status information on the operation of the SNA Gateway and all 3270 Lan Workstations connected to the gateway.  This GWSTATUS utility allows network administrators access real-time information like getting the Statistical information on each gateway and Lan workstation on the network and Host/LAN network errors, connection status, Gateway usage and availability etc.  When you run the GWSTATUS utility and if you get the error saying "The overlay file IBM$RUN.OVL is wrong version for this utility" you might want to check the following few things.
  19943.  
  19944. SOLUTION
  19945.  
  19946.     DIAGMENU utility cannot reside in the same directory because both utilities use a file named IBM$RUN.OVL.  IBM$RUN.OVL dated 11/1/88 is used by DIAGMENU utility where as IBM$RUN.OVL date 11/1/89 is used by GWSTATUS.  If you try to load having both utilities in the same directory it will give you an error saying "The overlay file IBM$RUN.OVL is wrong version for this utility".
  19947.  
  19948.  
  19949.  
  19950.  
  19951. FYI:    Btrieve Extended Operations with Visual Basic 1.0
  19952.                                      FYI
  19953.  
  19954. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19955.  
  19956.           TITLE:    Btrieve Extended Operations with Visual Basic 1.0
  19957.    DOCUMENT ID#:    FYI.A.2103
  19958.            DATE:    08AUG91
  19959.         PRODUCT:    Btrieve (All Platforms)
  19960. PRODUCT VERSION:    5.10
  19961.      SUPERSEDES:    N/A
  19962.         SYMPTOM:    N/A
  19963.  
  19964. ISSUE/PROBLEM
  19965.  
  19966.     Microsoft Visual Basic 1.0 does not allow the programmer to define an array within a User-Defined Type (structures defined with TYPE and END TYPE statements).  This can cause a lot of problems when using Extended Operations that use more than one logic expression or when returning more than a couple of records.
  19967.  
  19968. SOLUTION
  19969.  
  19970.     At this time the only solution is to make a structure for each logic expression and when retrieving more than one record, parse the string buffer one record at a time making the appropriate data conversions.  This is supposed to be fixed in the next release of Visual Basic.
  19971.  
  19972.  
  19973.  
  19974.  
  19975. FYI:    C-Worthy 1.2 corrupts shell
  19976.                                      FYI
  19977.  
  19978. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  19979.  
  19980.           TITLE:    C-Worthy 1.2 corrupts shell
  19981.    DOCUMENT ID#:    FYI.A.3814
  19982.            DATE:    07AUG91
  19983.         PRODUCT:    C-Worthy
  19984. PRODUCT VERSION:    1.2
  19985.      SUPERSEDES:    N/A
  19986.         SYMPTOM:    N/A
  19987.  
  19988. ISSUE/PROBLEM
  19989.  
  19990.     One of my customers wrote a client installation program for installing his NLM on the server.  However, in some Arcnet topologies, the client was disconnected from the server half way through the installation program.  The customer was using the C-Worthy libraries version 1.2 in his program with some of our NetWare C Interface for DOS APIs.  The shell version was 3.01B.
  19991.  
  19992. SOLUTION
  19993.  
  19994.     C-Worthy libraries 1.2 corrupt the NetWare shell.  The version of shell does not matter.  The problem was reported for shell versions ranging from 2.15a to 3.02e.  The version 1.21 of CWorthy libraries is the maintenance release, and it corrects the problem.
  19995.  
  19996.  
  19997.  
  19998.  
  19999. FYI:    BSPXSTUB.NLM : What is it?
  20000.                                      FYI
  20001.  
  20002. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20003.  
  20004.           TITLE:    BSPXSTUB.NLM : What is it?
  20005.    DOCUMENT ID#:    FYI.A.2334
  20006.            DATE:    07AUG91
  20007.         PRODUCT:    NetWare Btrieve NLM
  20008. PRODUCT VERSION:    5.15
  20009.      SUPERSEDES:    N/A
  20010.         SYMPTOM:    N/A
  20011.  
  20012. ISSUE/PROBLEM
  20013.  
  20014.     BSPXSTUB.NLM is a security device for people who only want their files to be accessed through NetWare SQL (or another NLM).  Bspxstub does not make the SPX connections necessary for Brequest to access Btrieve files.
  20015.  
  20016.     There is no equivalent for the Btrieve VAP.
  20017.  
  20018.     Instead of loading BSPXCOM.NLM, do the following:
  20019.  
  20020.          load btrieve <parms>
  20021.          load brouter
  20022.          load bspxstub
  20023.  
  20024.     A side note: running BCONSOLE.NLM v5.15 while Bspxstub is loaded will ABEND THE SERVER!  This is not patchable, but will be source-fixed.
  20025.  
  20026. SOLUTION    N/A
  20027.  
  20028.  
  20029.  
  20030.  
  20031. FYI:    Loading the SLATE Utility on Different Monitors
  20032.                                      FYI
  20033.  
  20034. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20035.  
  20036.           TITLE:    Loading the SLATE Utility on Different Monitors
  20037.     DOCUMENT ID:    FYI.A.1112
  20038.            DATE:    07AUG91
  20039.         PRODUCT:    Xtrieve PLUS, SLATE Utility
  20040. PRODUCT VERSION:    4.10, 2.1.2
  20041.      SUPERSEDES:    NA
  20042.  
  20043.         SYMPTOM:    SLATE.EXE hangs the workstation as soon as it's loaded.
  20044.  
  20045. ISSUE/PROBLEM
  20046.  
  20047.     SLATE.EXE, a printing configuration program shipping with Xtrieve PLUS v4.10, might temporarily hang your workstation if you don't use the -Vn switch on the command line.  The logon banner will display, but the Screen will not be displayed properly or at all. Use the Ctrl C or Ctrl Break keys to exit.
  20048.  
  20049. SOLUTION
  20050.  
  20051.     Try running the program again, adding the parameter -Vn, where n is one of the following numbers:
  20052.  
  20053.          n     ADAPTER & DISPLAY
  20054.  
  20055.          0     Automatic Configuration
  20056.          1     MDA & Monochrome Display
  20057.          2     CGA & Color Display
  20058.          3     CGA & Monochrome Display
  20059.          4     EGA & Color Display
  20060.          5     EGA & Monochrome Display
  20061.          6     Hercules & Monochrome Display
  20062.          7     VGA & Analog Monochrome Display
  20063.          8     VGA & Analog Color Display
  20064.          9     Hercules Plus & Monochrome Display
  20065.          10    MCGA & EGA Color Display
  20066.          11    MCGA & Analog Monochrome Display
  20067.          12    MCGA & Analog Color Display
  20068.          13    Hercules InColor & Monochrome Display
  20069.          14    Hercules InColor & Color Display
  20070.  
  20071.  
  20072.  
  20073.  
  20074. FYI:    Mountain Hard Drives & Btrieve 7b Interrupt
  20075.                                      FYI
  20076.  
  20077. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20078.  
  20079.           TITLE:    Mountain Hard Drives & Btrieve 7b Interrupt
  20080.    DOCUMENT ID#:    FYI.A.1014
  20081.            DATE:    06AUG91
  20082.         PRODUCT:    Btrieve for DOS, Brequest
  20083. PRODUCT VERSION:    any
  20084.      SUPERSEDES:    N/A
  20085.         SYMPTOM:    System seems to hang on first call to Btrieve.
  20086.  
  20087. ISSUE/PROBLEM
  20088.  
  20089.     Btrieve uses DOS interrupt 7b; other devices (drivers, TSRs, etc.) may also be set up to use this DOS interrupt.  An example of this type of interrupt conflict is between Btrieve and an Ompti controller model 5510 or 5520. These use a custom bios written by Mountain Inc. (which is now called Ocean Bearing Incorporated).  This controller is for a rather old 70 Megabyte hard disk which went out of production almost a year ago now.  However, a few are still shipping from old inventory, according to the folks at Ocean Bearing.
  20090.  
  20091. SOLUTION
  20092.  
  20093.     You can change the 7b interrupt on Btrieve to allow the two to co-exist without this conflict occurring.  Refer to a previous FYI - "Changing the Btrieve 7b Interrupt" from 8/12/91 for more information.  It should also be possible to change the interrupt on the controller but, Ocean Bearing did not want to tell us how to do it.
  20094.  
  20095.  
  20096.  
  20097.  
  20098. FYI:    Server Abends
  20099.                                      FYI
  20100.  
  20101. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20102.  
  20103.           TITLE:    Server Abends
  20104.    DOCUMENT ID#:    FYI.A.3813
  20105.            DATE:    05AUG91
  20106.         PRODUCT:    NetWare
  20107. PRODUCT VERSION:    3.10
  20108.      SUPERSEDES:    N/A
  20109.         SYMPTOM:    N/A
  20110.  
  20111. ISSUE/PROBLEM
  20112.  
  20113.     Server abends with the message "ClearPhantom called with not primary directory number."
  20114.  
  20115. SOLUTION
  20116.  
  20117.     Apply the patch "DELDRFX".  This patch is available on NetWire.
  20118.  
  20119.  
  20120.  
  20121.  
  20122. FYI:    Recalling a Report after Recalling a View
  20123.                                      FYI
  20124.  
  20125. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20126.  
  20127.           TITLE:    Recalling a Report after Recalling a View
  20128.     DOCUMENT ID:    FYI.A.3009
  20129.            DATE:    05AUG91
  20130.         PRODUCT:    Xtrieve PLUS
  20131. PRODUCT VERSION:    4.10
  20132.      SUPERSEDES:    NA
  20133.  
  20134.         SYMPTOM:    Recalling a report immediately after recalling a view might fail.
  20135.  
  20136. ISSUE/PROBLEM
  20137.  
  20138.     Recalling a report after recalling a view will fail in the following scenario: Create and store a view with field names that contain blanks such as "My Field".  Then create and store a report for that view.  Now, if you recall the view and then the report, you will get the error message "filename.1.fieldname " is not in view' and the report will not be recalled.
  20139.  
  20140.     When you create a view with field names that contain blanks, the blanks are replaced with the character ^.  If you then create and store a report for this view, the report will be stored with field names that contain ^.  However, if you then go back and store the view, the ^ characters are replaced with blanks in the stored definition.  Subsequently, if you recall this view and then try and recall the report, you will get an error since the field names in the report don't match the field names in the view.
  20141.  
  20142. SOLUTION
  20143.  
  20144.     In order to avoid this problem, you need to create the view, store it,recall it and then create your report.
  20145.  
  20146.  
  20147.  
  20148.  
  20149. FYI:    Problem with the HLLAPI Function-9
  20150.                                      FYI
  20151.  
  20152. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20153.  
  20154.           TITLE:    Problem with the HLLAPI Function-9
  20155.    DOCUMENT ID#:    FYI.A.2815
  20156.            DATE:    05AUG91
  20157.         PRODUCT:    NetWare 3270 tools
  20158. PRODUCT VERSION:    1.5
  20159.      SUPERSEDES:    N/A
  20160.         SYMPTOM:    SNA Host session locks up.
  20161.  
  20162. ISSUE/PROBLEM
  20163.  
  20164.     In NetWare 3270 HLLAPI the function-9 has a bug in it.  When the default ESC=x value in Function-9 (Set Session Parms) is changed from one character to two characters the host session locks up or returns an error message if the Command Processor is used.  This function is suppose to work for the two characters also because our function supports IBM's Function-9 (Set Session Parms) and the IBM's function let you set ESC=xx two characters.
  20165.  
  20166. SOLUTION
  20167.  
  20168.     It is submitted as a BUG with Sunnyvale Engineering.  This is not a high priority BUG.
  20169.  
  20170.  
  20171.  
  20172.  
  20173. FYI:    IPXGetInternetworkAddress problem - C Interface for Windows
  20174.                                      FYI
  20175.  
  20176. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20177.  
  20178.           TITLE:    IPXGetInternetworkAddress problem - C Interface for Windows
  20179.    DOCUMENT ID#:    FYI.A.2625
  20180.            DATE:    05AUG91
  20181.         PRODUCT:    C Interface for Windows
  20182. PRODUCT VERSION:    1.2x
  20183.      SUPERSEDES:    N/A
  20184.         SYMPTOM:    N/A
  20185.  
  20186. ISSUE/PROBLEM
  20187.  
  20188.     The IPXGetInternetworkAddress returns garbage in the Network Address field following the initialization of IPX with 0 ECB's.
  20189.  
  20190. SOLUTION
  20191.  
  20192.     At this point, doing this call requires IPXInitialize to be called with a non-zero ECB count.  A work around may be to use GetInternetAddress with the connection number of the workstation.
  20193.  
  20194.  
  20195.  
  20196.  
  20197. FYI:    BCONSOLE (EXE or NLM) userlist
  20198.                                      FYI
  20199.  
  20200. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20201.  
  20202.           TITLE:    BCONSOLE (EXE or NLM) userlist
  20203.    DOCUMENT ID#:    FYI.A.2333
  20204.            DATE:    05AUG91
  20205.         PRODUCT:    BCONSOLE (NLM & EXE)
  20206. PRODUCT VERSION:    v5.15 and below
  20207.      SUPERSEDES:    N/A
  20208.         SYMPTOM:    N/A
  20209.  
  20210. ISSUE/PROBLEM
  20211.  
  20212.     In BCONSOLE (EXE or NLM), userlist shows the following:
  20213.  
  20214.        C.ID: WR    USER:  <nothing>    NETWORK:  N/A     NODE ADDR:  N/A
  20215.  
  20216.     for each process using the Windows requester.  This is because Bconsole was developed for DOS, which allows only one connection per workstation.  Windows allows more than one, so some features of Bconsole were disabled.  As a result, all Windows requester users will look exactly the same when viewed under Bconsole.
  20217.  
  20218. SOLUTION    N/A
  20219.  
  20220.  
  20221.  
  20222.  
  20223. FYI:    Btrieve VAP Installation Password
  20224.                                      FYI
  20225.  
  20226. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20227.  
  20228.           TITLE:    Btrieve VAP Installation Password
  20229.    DOCUMENT ID#:    FYI.A.2332
  20230.            DATE:    05AUG91
  20231.         PRODUCT:    NetWare Btrieve VAP
  20232. PRODUCT VERSION:    5.15 and below
  20233.      SUPERSEDES:    FYI.A.1718
  20234.         SYMPTOM:    Btrieve VAP loads regardless of what password is typed for the password prompt.
  20235.  
  20236. ISSUE/PROBLEM
  20237.  
  20238.     The password that Bsetup prompts for when installing the Btrieve VAP is purely for use with NetWare, rather than to check for installation rights. Every time the VAP is installed, a different password can be typed in.
  20239.  
  20240.     A password is requested because the installation will create a new user to NetWare (the user is Btrieve), and the password will be used when Btrieve logs in to NetWare (the VAPs are loaded).
  20241.  
  20242. SOLUTION    N/A
  20243.  
  20244.  
  20245.  
  20246.  
  20247. FYI:    Status 20 on close after reset
  20248.                                      FYI
  20249.  
  20250. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20251.  
  20252.           TITLE:    Status 20 on close after reset
  20253.    DOCUMENT ID#:    FYI.A.2331
  20254.            DATE:    05AUG91
  20255.         PRODUCT:    Btrieve (all platforms)
  20256. PRODUCT VERSION:    v5.15 & below
  20257.      SUPERSEDES:    FYI.A.2302
  20258.         SYMPTOM:    Status 20 on a close operation.
  20259.  
  20260. ISSUE/PROBLEM
  20261.  
  20262.     A close after a reset is an invalid sequence of operations, so the fact that an invalid status was returned (20, when Btrieve was still loaded) is not considered a Btrieve bug.
  20263.  
  20264. SOLUTION    N/A
  20265.  
  20266.  
  20267.  
  20268.  
  20269. FYI:    Extended Operation Descriptor Length
  20270.                                      FYI
  20271.  
  20272. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20273.  
  20274.           TITLE:    Extended Operation Descriptor Length
  20275.    DOCUMENT ID#:    FYI.A.2330
  20276.            DATE:    05AUG91
  20277.         PRODUCT:    Btrieve
  20278. PRODUCT VERSION:    5.10 and above
  20279.      SUPERSEDES:    N/A
  20280.         SYMPTOM:    Status 62 (incorrect descriptor) on extended operations (get/step next/previous, op codes 36 through 39).
  20281.  
  20282. ISSUE/PROBLEM
  20283.  
  20284.     The descriptor length (the first 2 bytes of the data buffer) on the extended operation call must be the EXACT length of the descriptor.  This is unusual in Btrieve terms, because in most cases, a length greater than actual is OK, and extra bytes are ignored.  This requirement does not apply to the data buffer length parameter, which can still be declared longer than necessary.
  20285.  
  20286. SOLUTION    N/A
  20287.  
  20288.  
  20289.  
  20290.  
  20291. FYI:    Redirection in WMAKE
  20292.                                      FYI
  20293.  
  20294. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20295.  
  20296.           TITLE:    Redirection in WMAKE
  20297.    DOCUMENT ID#:    FYI.A.3812
  20298.            DATE:    01AUG91
  20299.         PRODUCT:    Network C for NLMs
  20300. PRODUCT VERSION:    SDK(a)
  20301.      SUPERSEDES:    N/A
  20302.         SYMPTOM:    N/A
  20303.  
  20304. ISSUE/PROBLEM
  20305.  
  20306.     In WMAKE (Watcom's Make utility), if redirection of compile errors is done to a file, WMAKE's ERROR directive is not executed.
  20307.  
  20308. SOLUTION
  20309.  
  20310.     The redirection is done through COMMAND.COM which does not return any errorcodes. Therefore, even though the compiler returns error codes, no error codes are sent to WMAKE because of the redirection, and hence the ERROR directive never gets executed.
  20311.  
  20312.  
  20313.  
  20314.  
  20315. FYI:    The tzset() API in CLib v3.x
  20316.                                      FYI
  20317.  
  20318. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20319.  
  20320.           TITLE:    The tzset() API in CLib v3.x
  20321.    DOCUMENT ID#:    FYI.A.3117
  20322.            DATE:    01AUG91
  20323.         PRODUCT:    NetWare C for NLMs
  20324. PRODUCT VERSION:    SDK(a)
  20325.      SUPERSEDES:    N/A
  20326.         SYMPTOM:    N/A
  20327.  
  20328. ISSUE/PROBLEM
  20329.  
  20330.     The tzset() API in CLib v3.x is provided only for reasons of compatibility. In order to effectively use functions which give the time in GMT (Greenwich Mean Time), such as gmtime(), use the following steps:
  20331.  
  20332.     1.    Set the server's time zone using the SET TIMEZONE console command
  20333.     2.    Load the CLib NLM
  20334.     3.    Load your NLM.
  20335.  
  20336.     It is important that you load CLib AFTER setting the server's time zone, because it is during initialization that the time zone is parsed by CLib.
  20337.  
  20338. SOLUTION    N/A
  20339.  
  20340.  
  20341.  
  20342.  
  20343. FYI:    Specifying a Path using XTRPATH Environment Variable
  20344.                                      FYI
  20345.  
  20346. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20347.  
  20348.           TITLE:    Specifying a Path using XTRPATH Environment Variable
  20349.     DOCUMENT ID:    FYI.A.3008
  20350.            DATE:    01AUG91
  20351.         PRODUCT:    Xtrieve PLUS
  20352. PRODUCT VERSION:    4.10
  20353.      SUPERSEDES:    NA
  20354.  
  20355.         SYMPTOM:    Status 11 when opening file if file path is not specified properly.
  20356.  
  20357. ISSUE/PROBLEM
  20358.  
  20359.     Here is some information on how to take advantage of the environment variable XTRPATH.  As you know, XTRPATH specifies the directory where your database resides.  You need to make sure that the file location specified in the DDF is in sync with the path specified in XTRPATH.  If the DDF contains a drive letter or starts with a back slash, the XTRPATH is totally ignored. Also, because of the way xDDPath (the XQL function called when XTRPATH is set) works, you need to specify the complete path in XTRPATH, and only put the file name in the DDF file.  For example, if the file MYFILE.BTR resides on \Test\Data, then set XTRPATH to \Test\Data and specify "MYFILE.BTR" for the location of the file in the DDF.
  20360.  
  20361.     There are, however, exceptions.  Depending on where you run Xtrieve, you can specify XTRPATH and file location differently.  The following table shows various ways you can specify XTRPATH.
  20362.  
  20363.         XTRPATH        Location in DDF file      Comments
  20364.      --------------------------------------------------------------------------
  20365.  
  20366.      F:\TEST\DATA     MYFILE.BTR               works in all cases
  20367.  
  20368.      F:\TEST          DATA\MYFILE.BTR          works, only if you are in
  20369.                                         \TEST when you start Xtrieve.
  20370.  
  20371.      F:\              TEST\DATA\MYFILE.BTR     works, only if you are in the
  20372.                                                volume where the directory
  20373.                                        TEST resides when you start
  20374.                                        Xtrieve.
  20375.  
  20376.  
  20377.  
  20378.  
  20379. FYI:    Extended Retrieval Reject Count
  20380.                                      FYI
  20381.  
  20382. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  20383.  
  20384.           TITLE:    Extended Retrieval Reject Count
  20385.     DOCUMENT ID:    FYI.A.1804
  20386.            DATE:    01AUG91
  20387.         PRODUCT:    NA
  20388. PRODUCT VERSION:    NA
  20389.      SUPERSEDES:    NA
  20390.  
  20391.         SYMPTOM:    NA
  20392.  
  20393. ISSUE/PROBLEM
  20394.  
  20395.     Thu 23-May-91 10:02am    Brenda Wallace Subject     FYI - Btrieve Extended Retrieval Reject Count - Continued
  20396.  
  20397.     Here's the latest in the continuing saga of the reject count for Btrieve Extended retrieval operations.  'Maximum' identifies the maximum value the reject count can be set to on an extended retrieval.  'System Defined' is what Btrieve will set the reject count to if 0 is specified by the programmer.
  20398.  
  20399.                                            Maximum         System Defined
  20400.                                            --------         --------------
  20401.      Btrieve for DOS 5.10a:                    127                127 *
  20402.      Btrieve for DOS 5.10a with Patch #81    65535              65535
  20403.      Btrieve VAP v 5.10                       1023               1023 *
  20404.      Btrieve VAP v 5.15                      65535               1023
  20405.      Btrieve NLM v 5.11                       4095               4095 *
  20406.      Btrieve NLM v 5.15                      65535               4095
  20407.  
  20408.     (* represents what has changed since first FYI.A.1804 on this subject.)
  20409.  
  20410.  
  20411.  
  20412.  
  20413. FYI:    Locking problems with NetWare Shells
  20414.                                      FYI
  20415.  
  20416. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20417.  
  20418.           TITLE:    Locking problems with NetWare Shells
  20419.    DOCUMENT ID#:    FYI.A.1517
  20420.            DATE:    01AUG91
  20421.         PRODUCT:    NetWare Shell
  20422. PRODUCT VERSION:    3.02, 3.10
  20423.      SUPERSEDES:    N/A
  20424.         SYMPTOM:    A read operation on a locked region of a file will wait until the region is unlocked.
  20425.  
  20426. ISSUE/PROBLEM
  20427.  
  20428.     If an attempt is made to read a locked portion of a file, the read operation will wait until the region is unlocked.  In previous versions of the shell, an appropriate return code was generated for the read operation and control was returned to the application.  This is a known problem in the NetWare shells v3.02 and v3.10, the version that ships with DOS v5.0.
  20429.  
  20430. SOLUTION
  20431.  
  20432.     If you are running a version of DOS prior to v5.0, use the v3.01e shell. If you are using DOS v5.0, you will need to wait for the a new shell to be released.
  20433.  
  20434.  
  20435.  
  20436.  
  20437. FYI:    Begin Diagnostics bug
  20438.                                      FYI
  20439.  
  20440. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20441.  
  20442.           TITLE:    Begin Diagnostics bug
  20443.    DOCUMENT ID#:    FYI.A.1516
  20444.            DATE:    01AUG91
  20445.         PRODUCT:    C-Interface for DOS
  20446. PRODUCT VERSION:    1.2
  20447.      SUPERSEDES:    N/A
  20448.         SYMPTOM:    BeginDiagnostics returns a status 255 (0xFE).
  20449.  
  20450. ISSUE/PROBLEM
  20451.  
  20452.     The BeginDiagnostics calls will return a status 255 (0xFE) when issued against a server that has more than 4 network interface cards installed and configured.  The problem is that the componentType field  of the IPX reply packet is not large enough to hold all the data being returned.
  20453.  
  20454. SOLUTION
  20455.  
  20456.     Increase the size of the componentType field in the IPX reply packet structure in DIAG.C.  The componentType field is on line 32 of DIAG.C and has been set to a BYTE array of size 53, increase this value to 530.
  20457.  
  20458.  
  20459.  
  20460.  
  20461. FYI:    Btrieve for DOS with Lan Manager v2.0
  20462.                                      FYI
  20463.  
  20464. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20465.  
  20466.           TITLE:    Btrieve for DOS with Lan Manager v2.0
  20467.    DOCUMENT ID#:    FYI.A.1515
  20468.            DATE:    01AUG91
  20469.         PRODUCT:    Btrieve for DOS
  20470. PRODUCT VERSION:    5.0x
  20471.      SUPERSEDES:    N/A
  20472.         SYMPTOM:    Status 12 when trying to open a file from multiple
  20473.     workstations.
  20474.  
  20475. ISSUE/PROBLEM
  20476.  
  20477.     If you use the latest version of Microsoft Lan Manager, v2.0, with Btrieve v5.00x, it is not possible to open the same file from two different workstations.  The first open to the file will be successful, but any additional opens to the file will return a status 12.
  20478.  
  20479. SOLUTION
  20480.  
  20481.     Upgrade to Btrieve v5.10x.
  20482.  
  20483.  
  20484.  
  20485.  
  20486. FYI:    Btrieve Status 24 Documentation Omission
  20487.                                      FYI
  20488.  
  20489. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20490.  
  20491.           TITLE:    Btrieve Status 24 Documentation Omission
  20492.    DOCUMENT ID#:    FYI.A.2409
  20493.            DATE:    31JUL91
  20494.         PRODUCT:    "Btrieve Programmers Manual"
  20495. PRODUCT VERSION:    April 1990 Edition
  20496.      SUPERSEDES:    N/A
  20497.         SYMPTOM:    N/A
  20498.  
  20499. ISSUE/PROBLEM
  20500.  
  20501.     The March 1989 edition of the "Btrieve Programmers Manual" has more information about the status 24 code than the April 1990 edition of the "Btrieve Programmers Manual".  Specifically, the following helpful text is omitted from the April 1990 edition:  "During a CREATE operation, the page size is the first file specification Btrieve checks, and a status of 24 may indicate an invalid data buffer".
  20502.  
  20503. SOLUTION
  20504.  
  20505.     Edit the next edition of the "Btrieve Programmer's Manual".
  20506.  
  20507.  
  20508.  
  20509.  
  20510. FYI:    INT86X & Family API Applications
  20511.                                      FYI
  20512.  
  20513. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20514.  
  20515.           TITLE:    INT86X & Family API Applications
  20516.    DOCUMENT ID#:    FYI.A.2408
  20517.            DATE:    31JUL91
  20518.         PRODUCT:    Btrieve for OS/2
  20519. PRODUCT VERSION:    5.10
  20520.      SUPERSEDES:    N/A
  20521.         SYMPTOM:    N/A
  20522.  
  20523. ISSUE/PROBLEM
  20524.  
  20525.     INT86X is a C language function call to do DOS interrupts.  This is how the C2FXBTRV.C interface (which ships with Btrieve for OS/2 version 5.10) uses DOS Btrieve.  If you look at the interface, you will see something like:
  20526.  
  20527.        if (runningOnOS2)
  20528.            return (BTRCALL (op, ...));
  20529.        else
  20530.        {
  20531.           /* set up for INT86X */
  20532.           return (INT86X (®s, ®s);
  20533.  
  20534.     The INT86X is linked in through the REAL mode libraries.  A normal (i.e.non-family app) normally links in a protected mode library, SLIBCEP.LIB or LLIBCEP.LIB for whichever model is used when compiling.  A family application must ALSO link in the REAL mode library SLIBCE.LIB or LLIBCE.LIB for example.
  20535.  
  20536.     Linking in the REAL mode library resolves the external reference to INT86X().
  20537.  
  20538.     After linking the application must be "bound" using BIND.EXE and specifying the BTRCALL entry point name in the list of DLL calls.
  20539.  
  20540.     ex. bind fname.exe api.lib os2.lib /n @dllList.bnd
  20541.  
  20542.     The dllList.bnd lists all the DLL function names referenced.  For simple Btrieve apps this file would contain only the BTRCALL function name.
  20543.  
  20544.     To use the above method, the application must specify in its .DEF file the BTRCALL function name in its IMPORTS section rather than linking in the import library:
  20545.  
  20546.         IMPORTS
  20547.               BTRCALLS.BTRCALL   ; DLLname.functionname
  20548.  
  20549. SOLUTION    N/A
  20550.  
  20551.  
  20552.  
  20553.  
  20554. FYI:    Transaction Processing with Embedded SQL
  20555.                                      FYI
  20556.  
  20557. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20558.  
  20559.           TITLE:    Transaction Processing with Embedded SQL
  20560.    DOCUMENT ID#:    FYI.A.1737
  20561.            DATE:    31JUL91
  20562.         PRODUCT:    XQL/NetWare SQL
  20563. PRODUCT VERSION:    2.11
  20564.      SUPERSEDES:    N/A
  20565.         SYMPTOM:    Status 85 and 312 with Embedded SQL
  20566.  
  20567. ISSUE/PROBLEM
  20568.  
  20569.     When using Embedded SQL, transaction processing is enabled by default. This means when you connect to a database you are starting a transaction. Every SQL statement executed after that will be part of that transaction until you execute either a COMMIT WORK or ROLLBACK WORK statement. When you execute either of these, the current transaction is closed, the data is written or rolled back, and a new transaction is automatically started.
  20570.  
  20571.     If you do not put any COMMITs or ROLLBACKs in your application, every operation performed by your application will be in a single transaction, which will eventually end when you release your connection to the database by executing either EXEC SQL 'COMMIT WORK RELEASE' or EXEC SQL 'ROLLBACK WORK RELEASE'.  This is likely to cause your application to return a Btrieve status 85 (File in Use) when run on multiple workstations, since two users cannot access the same file within a transaction.  To avoid this, make sure you frequently execute COMMIT or ROLLBACK statements.
  20572.  
  20573.     Alternatively, you can turn off the automatic transaction processing feature, and have your application control which statements will be performed within a transaction.  To do this, have your program call the function "db_transaction_processing(0)" before connecting to the database. Calling this function with a false value turns off the automatic transaction processing.  Now, at any place you wish to enable a transaction in your program, you can place the statement EXEC SQL EXECUTE IMMEDIATE 'START TRANSACTION'.  At the point you wish to end or abort the transaction, you put either EXEC SQL EXECUTE IMMEDIATE 'COMMIT WORK' or EXEC SQL EXECUTE IMMEDIATE 'ROLLBACK WORK'.  This gives you complete control over where transactions will be used in your application.
  20574.  
  20575.     The reason EXECUTE IMMEDIATE is used rather than just EXECUTE is due to a bug in the pre-compiler which does not properly process an EXEC SQL EXECUTE 'START TRANSACTION' statement.  You must remember that if you use the IMMEDIATE key word in the Start Transaction statement, you must also use it in the Commit or Rollback statement.  If you use IMMEDIATE in your statement to start the transaction, but you don't use it when executing your Commit or Rollback statements, the Commit/Rollback will not be performed.  Then, when you finally release your connection to the database, whether you specify a COMMIT WORK RELEASE or ROLLBACK WORK RELEASE, everything that was done since the transaction started will be rolled back and a status 312 (Transaction aborted) will be returned to your application.
  20576.  
  20577. SOLUTION    N/A
  20578.  
  20579.  
  20580.  
  20581.  
  20582. FYI:    Banyan Vines Network v4.02 & Btrieve for DOS
  20583.                                      FYI
  20584.  
  20585. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20586.  
  20587.           TITLE:    Banyan Vines Network v4.02 & Btrieve for DOS
  20588.    DOCUMENT ID#:    FYI.A.1013
  20589.            DATE:    31JUL91
  20590.         PRODUCT:    Btrieve for DOS
  20591. PRODUCT VERSION:    5.1x
  20592.      SUPERSEDES:    N/A
  20593.         SYMPTOM:    N/A
  20594.  
  20595. ISSUE/PROBLEM
  20596.  
  20597.     Btrieve for DOS v4.11x is not compatible with Banyan Vines network v4.02. Several erroneous Btrieve and non-Btrieve status codes may occur, such as 2, 3, 4, 9, 14, 15, and 18.
  20598.  
  20599. SOLUTION
  20600.  
  20601.     Upgrade to Btrieve for DOS v5.1x.
  20602.  
  20603.  
  20604.  
  20605.  
  20606. FYI:    Novell Menu v2.30 & loading TSRs
  20607.                                      FYI
  20608.  
  20609. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20610.  
  20611.           TITLE:    Novell Menu v2.30 & loading TSRs
  20612.    DOCUMENT ID#:    FYI.A.1012
  20613.            DATE:    31JUL91
  20614.         PRODUCT:    Btrieve for DOS, XQLP & XQLPO, and Xtrieve PLUS
  20615. PRODUCT VERSION:    5.x, 2.x, and 4.01a
  20616.      SUPERSEDES:    N/A
  20617.         SYMPTOM:    N/A
  20618.  
  20619. ISSUE/PROBLEM
  20620.  
  20621.     The MENU.EXE v2.30 which was released with NetWare v2.x and 3.x requires 90k of memory to load.  If in the past you've been using the earlier release of MENU.EXE to execute batch files to load your Btrieve, XQLP[O], and Xtrieve successfully, you'll now find that these same batch files with the new MENU.EXE are hanging.  This is due to the fact that the newer MENU.EXE has taken much more RAM than previous versions of MENU.EXE and there isn't enough memory for these TSRs to now load.
  20622.  
  20623. SOLUTION
  20624.  
  20625.     Replace the MENU.EXE v2.30 with an earlier release which will not require90k.  Or download the latest MENU.EXE from CompuServe NOVA Library 6.  The file is called MENU34.ZIP.  This is v2.34 and it only requires 30k of memory to load.
  20626.  
  20627.  
  20628.  
  20629.  
  20630. FYI:    Btrieve, DOS Share, and LanTastic networks
  20631.                                      FYI
  20632.  
  20633. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20634.  
  20635.           TITLE:    Btrieve, DOS Share, and LanTastic networks
  20636.    DOCUMENT ID#:    FYI.A.1011
  20637.            DATE:    31JUL91
  20638.         PRODUCT:    Btrieve for DOS
  20639. PRODUCT VERSION:    5.xx
  20640.      SUPERSEDES:    N/A
  20641.         SYMPTOM:    N/A
  20642.  
  20643. ISSUE/PROBLEM
  20644.  
  20645.     Under the LanTastic network, DOS SHARE.EXE is used to control multi-user  access and concurrency.  This must be loaded on any machine being used as a  server.  If you also load SHARE on workstations, each local copy will be used to "control" concurrency.  This, of course, will result in no  concurrency control because each user will never see any conflicts.  Therefore, SHARE must be loaded on any server that has Btrieve files, and  NEVER loaded on a workstation or you will eventually corrupt your Btrieve  data files.
  20646.  
  20647.     In addition, LanTastic also allows a server to be used as a workstation. If this server/workstation has SHARE loaded (because it has Btrieve files on its hard disk), and you are also accessing Btrieve files on another server you will have the same problem described above, and will eventually corrupt those files on the second server.
  20648.  
  20649. SOLUTION
  20650.  
  20651.     Localize all of your Btrieve data files on a single server and load DOSSHARE only on that server and NOT on each workstation/server.  Or, if you want multiple servers to have Btrieve files, don't use those servers as workstations.
  20652.  
  20653.  
  20654.  
  20655.  
  20656. FYI:    Btrieve Record Locking in Read Only mode
  20657.                                      FYI
  20658.  
  20659. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20660.  
  20661.           TITLE:    Btrieve Record Locking in Read Only mode
  20662.    DOCUMENT ID#:    FYI.A.1010
  20663.            DATE:    31JUL91
  20664.         PRODUCT:    Btrieve
  20665. PRODUCT VERSION:    5.1x
  20666.      SUPERSEDES:    N/A
  20667.         SYMPTOM:    N/A
  20668.  
  20669. ISSUE/PROBLEM
  20670.  
  20671.     It is possible to lock a record within a Btrieve file which has been opened in Read Only mode.  Any of the four lock biases (100, 200, 300,  or 400) will be successful when used on a read of a record.  However, remember you may need to use the unlock operation to release the lock(s), since you will not be able to rely on "implicit unlocks" resulting from an update.
  20672.  
  20673. SOLUTION    N/A
  20674.  
  20675.  
  20676.  
  20677.  
  20678. FYI:    Error 2 on Unload of Btrieve NLM
  20679.                                      FYI
  20680.  
  20681. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20682.  
  20683.           TITLE:    Error 2 on Unload of Btrieve NLM
  20684.    DOCUMENT ID#:    FYI.A.1009
  20685.            DATE:    31JUL91
  20686.         PRODUCT:    NetWare Btrieve NLM
  20687. PRODUCT VERSION:    5.1x
  20688.      SUPERSEDES:    N/A
  20689.         SYMPTOM:    N/A
  20690.  
  20691. ISSUE/PROBLEM
  20692.  
  20693.     When attempting to unload the Btrieve NLM v5.1x a NetWare error 2 may occur. This is not a Btrieve status=2 error.  It is a NetWare error indicating the NLM you are trying to unload is unable to be unloaded until the NetWare SQL NL is unloaded.  This may occur when either using BSTOP.NCF or when using the manual unload Btrieve command.
  20694.  
  20695. SOLUTION
  20696.  
  20697.     Unload the NetWare SQL NLM with the NSSTOP.NCF file before trying to unload the NetWare Btrieve NLM.
  20698.  
  20699.  
  20700.  
  20701.  
  20702. FYI:    Date User Password Expires Resets To January 1, 1985
  20703.                                      FYI
  20704.  
  20705. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20706.  
  20707.           TITLE:    Date User Password Expires Resets To January 1, 1985
  20708.    DOCUMENT ID#:    FYI.P.9476
  20709.            DATE:    30JUL91
  20710.         PRODUCT:    NetWare
  20711. PRODUCT VERSION:    v2.15, v2.2, v3.11
  20712.      SUPERSEDES:    FYI.P.9635
  20713.  
  20714.         SYMPTOM:    Date Password Expires resets to January 1, 1985.
  20715.  
  20716. ISSUE/PROBLEM
  20717.  
  20718.     Date Password Expires resets to January 1, 1985.
  20719.  
  20720.     This happens when the SUPERVISOR gives or changes the user password in SYSCON AND the user answers NO to change password when prompted.  The Date Password Expires defaults to January 1, 1985.
  20721.  
  20722.     A good example is in the upgrade to 3.x NetWare, the supervisor has to set a password for each user. If you look at the restrictions before the user does his login and changes it, the date will be set to January 1, 1985.
  20723.  
  20724.  
  20725.  
  20726.  
  20727. FYI:    setmode() is Missing from CLIB.IMP File
  20728.                                      FYI
  20729.  
  20730. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20731.  
  20732.           TITLE:    setmode() is Missing from CLIB.IMP File
  20733.    DOCUMENT ID#:    FYI.A.3811
  20734.            DATE:    30JUL91
  20735.         PRODUCT:    Network C for NLMs
  20736. PRODUCT VERSION:    SDK
  20737.      SUPERSEDES:    N/A
  20738.         SYMPTOM:    NLM won't link if setmode is used in the code.
  20739.  
  20740. ISSUE/PROBLEM
  20741.  
  20742.     Setmode is missing from the CLIB.IMP file.  This file lists all the symbols that other NLMs can import.  So if setmode is used in the code, at link time this symbol will not be found.  Thus, the linker won't be able to create the NLM.
  20743.  
  20744. SOLUTION
  20745.  
  20746.     Do not use setmode() in your code.  This API is listed in the documentation, however, since it is not exported from CLIB, it cannot be used.
  20747.  
  20748.  
  20749.  
  20750.  
  20751. FYI:    C-Interfaces & ScanFile/DirEntry
  20752.                                      FYI
  20753.  
  20754. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20755.  
  20756.           TITLE:    C-Interfaces & ScanFile/DirEntry
  20757.    DOCUMENT ID#:    FYI.A.2624
  20758.            DATE:    30JUL91
  20759.         PRODUCT:    C-Interfaces
  20760. PRODUCT VERSION:    v1.2x
  20761.      SUPERSEDES:    N/A
  20762.         SYMPTOM:    N/A
  20763.  
  20764. ISSUE/PROBLEM
  20765.  
  20766.     Some of you may already know this but I understood that the ScanFileEntry and ScanDirEntry can scan for both files and directories.  Well, both these APIs can and do but must be called twice in order to get both directories and files.  The problem is that the 'searchAttribute' variable may be setup to scan for either files and/or directories.  Thinking like the DOS world, the search attribute may be 0x16 for scan for everything. This will however, only return directories with our two APIs.  Setting it to 0x06 will allow scanning for files only.
  20767.  
  20768.     Using the ScanFileEntry and ScanDirEnty, the user must make two separate calls to fetch all directories and files.
  20769.  
  20770. SOLUTION    N/A
  20771.  
  20772.  
  20773.  
  20774.  
  20775. FYI:    Checking for Directory existence & User Rights
  20776.                                      FYI
  20777.  
  20778. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20779.  
  20780.           TITLE:    Checking for Directory existence & User Rights
  20781.    DOCUMENT ID#:    FYI.A.2623
  20782.            DATE:    30JUL91
  20783.         PRODUCT:    C Interfaces
  20784. PRODUCT VERSION:    all
  20785.      SUPERSEDES:    N/A
  20786.         SYMPTOM:    N/A
  20787.  
  20788. ISSUE/PROBLEM
  20789.  
  20790.     The need to check for the existence of a Directory when a user has limited rights poses some interesting problems.  As an example:
  20791.  
  20792.     A user has no rights at the root, but is supposed to have specified rights in a directory that we want to check existence of.  In this case he has no rights in the branch of the directory path that needs to be checked.  Most functions that are normally used for testing the existence of a directory, i.e. rename, get attribute, & several of our API's, need some sort of modify and/or read privileges, which the user does not have.
  20793.  
  20794.     The most successful method, which still limits the user's rights, is to grant them 'Scan' privileges using the Trustee Assignments, in a directory in which the SEARCHED for directory is to reside.  The function to carry out the test can be the DOS - Set Current Directory, or change directory, function, INT 21h, function 3Bh.  This by the way works at the command prompt using CHDIR also, as one would expect.
  20795.  
  20796.     What's interesting, is that by granting the user only the 'Scan' rights specifically to the parent directory, the user can only see the directory path to get to that parent directory (and the SEARCHED directory is it exists).  Files and 'other' directories in that path are not seen.
  20797.  
  20798.     NOTE: Applications that test for the existence of a directory may have some problems when the system supervisor or administrator does not foresee which parent directories need the 'Scan' rights.  Planning is needed in this case.
  20799.  
  20800. SOLUTION    N/A
  20801.  
  20802.  
  20803.  
  20804.  
  20805. FYI:    Btrieve /F and File Handles
  20806.                                      FYI
  20807.  
  20808. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20809.  
  20810.           TITLE:    Btrieve /F and File Handles
  20811.    DOCUMENT ID#:    FYI.A.1621
  20812.            DATE:    30JUL91
  20813.         PRODUCT:    Btrieve for DOS
  20814. PRODUCT VERSION:    v5.10
  20815.      SUPERSEDES:    N/A
  20816.         SYMPTOM:    Btrieve v5.10 uses more file handles than earlier versions, often resulting in status 87's.
  20817.  
  20818. ISSUE/PROBLEM
  20819.  
  20820.     Btrieve v5.10 uses more file handles than it's predecessors because of performance issues.  The old method involved rotating the open files among 20 handles, maximum.  The new method does not rotate handles, but instead uses a DOS file handle for every file it needs to have open.
  20821.  
  20822. SOLUTION
  20823.  
  20824.     Btrieve uses file handles as follows:  1 for each Btrieve file, 1 for each.PRE file, 1 for each logged file, 1 for the transaction file, and 3 for extended files.  In a worst case scenario, with 60 Btrieve files open and all 60 files listed in the BLOG.CFG file, Btrieve would need a total of 184  (60*3 + 4) file handles.  To allow for this, the CONFIG.SYS command files= and the SHELL.CFG (or NET.CFG) command file handles= should be set to this number of total files.
  20825.  
  20826.     files=184         <--goes in CONFIG.SYS
  20827.     file handles=184  <--goes in SHELL.CFG (or NET.CFG)
  20828.     /F:60             <--goes on Btrieve command line (other parameters may                  need to be adjusted as well)
  20829.  
  20830.     Once the .PRE file is open Btrieve does not close it until the associated Btrieve file is also closed.  But, as .PRE files are not always opened, this maximum number of file handles may never need to be used.  For example, if 60 Btrieve files are open, 18 are accessed in a transaction, 10 are being logged, and non of the files have been extended, Btrieve may require as little as 89 (18*2 + 10*2 + 32 + 1) or (60 + 18 + 10 + 1) file handles, instead of a worst case of 184, unless it needs to write to other .PRE files for other reasons.
  20831.  
  20832.     Keep in mind that, when an application is executed, DOS already has 3 file handles open (stdin, stdout, stderr).  In addition, some programming languages, including C, open an additional 2 file handles (stdprn & stdaux).  Programs that use overlays will usually need additional file handles as well.  For the previous example, the total file handles should probably be set to 94 if the application is written in C.
  20833.  
  20834.  
  20835.  
  20836.  
  20837. FYI:    Salvage from Deleted Directories
  20838.                                      FYI
  20839.  
  20840. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20841.  
  20842.           TITLE:    Salvage from Deleted Directories
  20843.    DOCUMENT ID#:    FYI.A.1625
  20844.            DATE:    26JUL91
  20845.         PRODUCT:    NetWare
  20846. PRODUCT VERSION:    3.x
  20847.      SUPERSEDES:    N/A
  20848.         SYMPTOM:    SALVAGE function reports not enough rights to salvage directory if the DELETED.SAV directory is missing and the user picks "Salvage from deleted directories"
  20849.  
  20850. ISSUE/PROBLEM
  20851.  
  20852.     When a file is deleted in NetWare 3.x, the file remains "in" the directory until a purge is executed or the "life" of the deleted file expires.  But, when files and their parent directory are deleted, the deleted file entries are placed in the DELETED.SAV directory off the root of that volume.  This directory is marked Hidden System so that it is not normally messed with. But, if this directory (DELETED.SAV) is deleted for whatever reason, then deleted files whose parent directory is deleted are gone forever.  In addition, SALVAGE will report a lack of sufficient rights when trying to salvage files from deleted directories.
  20853.  
  20854.     Of interest to developers: To salvage the deleted files whose parent directory has been deleted, execute the ScanSalvagableFiles function on the \DELETED.SAV directory.
  20855.  
  20856. SOLUTION
  20857.  
  20858.     Re-create the DELETED.SAV directory for that volume with the following commands:
  20859.  
  20860.       MD \DELETED.SAV
  20861.       FLAGDIR \DELETED.SAV HS
  20862.  
  20863.     This will not allow you to salvage already deleted files, but will allow them to be salvaged the next time their directory is also deleted.
  20864.  
  20865.  
  20866.  
  20867.  
  20868. FYI:    Windows, the maximum numbers of ECBs
  20869.                                      FYI
  20870.  
  20871. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20872.  
  20873.           TITLE:    Windows, the maximum numbers of ECBs
  20874.    DOCUMENT ID#:    FYI.A.2902
  20875.            DATE:    24JUL91
  20876.         PRODUCT:    Windows SDK
  20877. PRODUCT VERSION:    v1.21
  20878.      SUPERSEDES:    N/A
  20879.         SYMPTOM:    N/A
  20880.  
  20881. ISSUE/PROBLEM
  20882.  
  20883.     If your Windows application is making IPX calls, you will have to identify the number of ECBs to be allocated using IPXInitialize. If your application is passing zero to the IPXInitialize(), in the maxECBs parameter, this will indicate that your application is going to manage its own ECBs allocations, otherwise you will depend on the NWIPXSPX.DLL to manage the ECBs allocated for you. In the 386 enhance mode, the maximum number of outstanding ECBs that will be submitted to IPX is ninety when the packet size is 576 byte.
  20884.  
  20885. SOLUTION    N/A
  20886.  
  20887.  
  20888.  
  20889.  
  20890. FYI:    Object IDs in the ChangeDirectoryEntry API
  20891.                                      FYI
  20892.  
  20893. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20894.  
  20895.           TITLE:    Object IDs in the ChangeDirectoryEntry API
  20896.    DOCUMENT ID#:    FYI.A.3115
  20897.            DATE:    23JUL91
  20898.         PRODUCT:    CLIB
  20899. PRODUCT VERSION:    v3.11
  20900.      SUPERSEDES:    N/A
  20901.         SYMPTOM:    N/A
  20902.  
  20903. ISSUE/PROBLEM
  20904.  
  20905.     The object IDs used in the API ChangeDirectoryEntry() in CLib v3.11 *must* be LongSwap()ed before they are passed in.  This applies to the MOwnerID, MLastArchivedID and MLastpdatedID structure members.
  20906.  
  20907. SOLUTION    N/A
  20908.  
  20909.  
  20910.  
  20911.  
  20912. FYI:    Fake Roots
  20913.                                      FYI
  20914.  
  20915. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20916.  
  20917.           TITLE:    Fake Roots
  20918.    DOCUMENT ID#:    FYI.A.1624
  20919.            DATE:    23JUL91
  20920.         PRODUCT:    System Calls - DOS
  20921. PRODUCT VERSION:    v1.0
  20922.      SUPERSEDES:    17-Jun-91
  20923.         SYMPTOM:    N/A
  20924.  
  20925. ISSUE/PROBLEM
  20926.  
  20927.     Recently, there was an FYI on how to find the true path of a fake rooted drive.  It suggested using the C Interface-DOS function GetFullPath() to retrieve the real path based on the system volume.  That works, but the function is not available to System Calls users.
  20928.  
  20929. SOLUTION
  20930.  
  20931.     To determine the real root from a fake rooted drive by either System Calls-DOS or C Interface-DOS, first obtain the handle of the drive in question, using the function GetDirectoryHandle.  If the handle is 0, the drive is either local or not valid.  Then, pass this handle into GetDirectoryPath.  The returned path will include the volume and the full path of the associated handle.  Keep in mind, though, the slashes separating the directories will be forward slashes instead of back-slashes.
  20932.  
  20933.     These functions are also useful for Btrieve applications that need to work correctly with fake roots and the Btrieve requester.  If the application or Btrieve interface were to translate Btrieve OPEN operations to pass the real path to the requester, then the server based Btrieve would not return status 12's on open.
  20934.  
  20935.     These functions are documented in the Directory Services chapter of either the NetWare System Calls-DOS or NetWare C Interface-DOS manuals.
  20936.  
  20937.  
  20938.  
  20939.  
  20940. FYI:    Xtrieve Default Page Size
  20941.                                      FYI
  20942.  
  20943. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20944.  
  20945.           TITLE:    Xtrieve Default Page Size
  20946.     DOCUMENT ID:    FYI.A.3407
  20947.            DATE:    19JUL91
  20948.         PRODUCT:    Xtrieve PLUS
  20949. PRODUCT VERSION:    4.10
  20950.      SUPERSEDES:    NA
  20951.  
  20952.         SYMPTOM:    Btrieve Status 29 (Invalid Key Length)
  20953.  
  20954. ISSUE/PROBLEM
  20955.  
  20956.     Earlier versions calculated page sizes automatically. This version gives you control and allows you to specify any valid page size desired. However there is a default and it's 512. A minimum of 8 key values must fit on 1 page and this restriction is easily violated causing a Btrieve Status 29.
  20957.  
  20958. SOLUTION
  20959.  
  20960.     Select an acceptable page size from the Xtrieve menu when creating a new file.
  20961.  
  20962.  
  20963.  
  20964.  
  20965. FYI:    XQLP Status 210
  20966.                                      FYI
  20967.  
  20968. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20969.  
  20970.           TITLE:    XQLP Status 210
  20971.    DOCUMENT ID#:    FYI.A.2214
  20972.            DATE:    19JUL91
  20973.         PRODUCT:    NetWare SQL Client/Server Starter Kit
  20974. PRODUCT VERSION:    2.11
  20975.      SUPERSEDES:    N/A
  20976.         SYMPTOM:    XQLP error 210 recalling a table
  20977.  
  20978. ISSUE/PROBLEM
  20979.  
  20980.     Several customers have encountered an "XQLP error 210" while trying to recall a table in SQLFile (which is part of the Client/Server starter Kit).  This seems to happen on tables that have a large number of fields defined to them.
  20981.  
  20982.     SQLFile is trying to fetch all of the field names with one call, making the data buffer very large.  The default parameters may not be configured large enough to handle this.
  20983.  
  20984. SOLUTION
  20985.  
  20986.     After increasing the maximum data buffer size (record length) for Btrieve and NetWare SQL, make sure to load NSREQ.EXE with the appropriate /d: parameter, and MORE IMPORTANTLY - SQLFile.exe also has a /d: parameter that must be set.  Page 4-4 in the "Introduction to Client/Server Computing" book that comes with the Client/Server starter kit, gives an example for loading SQLFile.
  20987.  
  20988.  
  20989.  
  20990.  
  20991. FYI:    ScanVolForRestrictions
  20992.                                      FYI
  20993.  
  20994. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  20995.  
  20996.           TITLE:    ScanVolForRestrictions
  20997.    DOCUMENT ID#:    FYI.A.1623
  20998.            DATE:    19JUL91
  20999.         PRODUCT:    NetWare C for DOS
  21000. PRODUCT VERSION:    1.2
  21001.      SUPERSEDES:    N/A
  21002.         SYMPTOM:    N/A
  21003.  
  21004. ISSUE/PROBLEM
  21005.  
  21006.     The directory API call, ScanVolForRestrictions, does not work as documented.  The sequence number is documented as passed by reference (*sequence), but is prototyped as passed by value.  This may be changed in a later version of the API's, but for now, there's a quick work-around.
  21007.  
  21008. SOLUTION
  21009.  
  21010.     Call the function as prototyped, but, after calling the function, increment the sequence number by the byte value at offset 0 of NWBuffer, as follows:
  21011.  
  21012.       sequence += NWBuffer[0];
  21013.  
  21014.     The alternate solution is to change the prototype, function, and all references to sequence within the function to pointer references and then update sequence just before the return with the following line:
  21015.  
  21016.       *sequence += NWBuffer[0];
  21017.  
  21018.  
  21019.  
  21020.  
  21021. FYI:    Server Reboot when loading PROTECT NLM
  21022.                                      FYI
  21023.  
  21024. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21025.  
  21026.           TITLE:    Server Reboot when loading PROTECT NLM
  21027.    DOCUMENT ID#:    FYI.A.3116
  21028.            DATE:    18JUL91
  21029.         PRODUCT:    NetWare C for NLMs
  21030. PRODUCT VERSION:    SDK(a)
  21031.      SUPERSEDES:    N/A
  21032.         SYMPTOM:    N/A
  21033.  
  21034. ISSUE/PROBLEM
  21035.  
  21036.     The PROTECT NLM will reboot the v3.11 server if it is loaded with the -H parameter.  i.e. LOAD PROTECT -H causes an Abend.
  21037.  
  21038. SOLUTION
  21039.  
  21040.     Currently, the only fix is to not use the -H parameter.
  21041.  
  21042.  
  21043.  
  21044.  
  21045. FYI:    Windows & Namepipes
  21046.                                      FYI
  21047.  
  21048. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21049.  
  21050.           TITLE:    Windows & Namepipes
  21051.    DOCUMENT ID#:    FYI.A.2622
  21052.            DATE:    18JUL91
  21053.         PRODUCT:    OS/2
  21054. PRODUCT VERSION:    1.3
  21055.      SUPERSEDES:    N/A
  21056.         SYMPTOM:    N/A
  21057.  
  21058. ISSUE/PROBLEM
  21059.  
  21060.     Using the NamePipes DosPeekNmPipe API has a problem under Windows 3.0 when another task is run or switched over the current application.  The error, invalid handle, is returned on any subsequent calls once the application is switched back.
  21061.  
  21062. SOLUTION
  21063.  
  21064.     Use the new NETAPI.DLL for Windows, version 1.3D.  This DLL can be found in the WINUP2.ZIP file on Compuserve under the NDD forum.
  21065.  
  21066.  
  21067.  
  21068.  
  21069. FYI:    Place Holders in Dynamic Embedded SQL statements
  21070.                                      FYI
  21071.  
  21072. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21073.  
  21074.           TITLE:    Place Holders in Dynamic Embedded SQL statements
  21075.    DOCUMENT ID#:    FYI.A.1736
  21076.            DATE:    18JUL91
  21077.         PRODUCT:    Embedded SQL
  21078. PRODUCT VERSION:    2.11
  21079.      SUPERSEDES:    N/A
  21080.         SYMPTOM:    N/A
  21081.  
  21082. ISSUE/PROBLEM
  21083.  
  21084.     When dynamically setting up SQL statements in an embedded SQL environment, place holders are used to specify where host variable values will be used when the statement is executed.  These place holders look like host variables, but they do not have to be declared.  The following example to update a zip code to a new value illustrates this:
  21085.  
  21086.       /** first, declare all host variables to be used **/
  21087.       EXEC SQL BEGIN DECLARE SECTION;
  21088.         char sqlupdate[200];
  21089.         char newzip[5], oldzip[5];
  21090.       EXEC SQL END DECLARE SECTION;
  21091.  
  21092.       /** next, build and prepare the dynamic statement **/
  21093.       sprintf(sqlupdate, "UPDATE patients SET zip = :v1",
  21094.                                       " where zip = :v2");
  21095.       EXEC SQL PREPARE S1 FROM :sqlupdate;
  21096.  
  21097.       /** Now, set up the values in the host variables to be used in
  21098.           this statement.  Usually, you will be prompting the user for
  21099.           input here **/
  21100.       newzip = "78721";
  21101.       oldzip = "78700";
  21102.  
  21103.       /** Now execute the prepared statement to perform the update, which
  21104.           will use the specified host variables for the place holders in
  21105.           the original statement. **/
  21106.       EXEC SQL EXECUTE S1 USING :newzip, :oldzip;
  21107.  
  21108.  
  21109.     Notice, I did not have to declare the place holders v1 and v2; they are comparable to substitution variables used in the XQL APIs.
  21110.  
  21111. SOLUTION    N/A
  21112.  
  21113.  
  21114.  
  21115.  
  21116. FYI:    NetWare 2.2 File Server Requirements
  21117.                                      FYI
  21118.  
  21119. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21120.  
  21121.           TITLE:    NetWare 2.2 File Server Requirements
  21122.    DOCUMENT ID#:    FYI.A.1313
  21123.            DATE:    17JUL91
  21124.         PRODUCT:    NetWare
  21125. PRODUCT VERSION:    2.2
  21126.      SUPERSEDES:    N/A
  21127.         SYMPTOM:    N/A
  21128.  
  21129. ISSUE/PROBLEM
  21130.  
  21131.     The minimum memory requirement for the NetWare 2.2 file server is 2.5MB. If VAPs are to be run in the server, a minimum of 4MB of memory is required.  NetWare v2.2 will support and address up to 12MB of memory in the server.  The following formula is useful for determining memory requirements:
  21132.  
  21133.      (.005 X MB of disk storage) + 2MB + 2MB if running VAPs in the server
  21134.  
  21135. SOLUTION    N/A
  21136.  
  21137.  
  21138.  
  21139.  
  21140. FYI:    Misconceptions about the TRXNET Driver
  21141.                                      FYI
  21142.  
  21143. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21144.  
  21145.           TITLE:    Misconceptions about the TRXNET Driver
  21146.    DOCUMENT ID#:    FYI.A.1312
  21147.            DATE:    16JUL91
  21148.         PRODUCT:    IPX
  21149. PRODUCT VERSION:    N/A
  21150.      SUPERSEDES:    N/A
  21151.         SYMPTOM:    Sending large SPX packets causes the workstation to hang.
  21152.  
  21153. ISSUE/PROBLEM
  21154.  
  21155.     The TRXNet driver which comes with NetWare is misconceived by many as a generic driver.  This is not the case.  The TRXNet driver is an 8 bit Arcnet driver which was originally developed for RXNet and RXNet2 which were Novell cards.  In many cases, users attempt to use this driver with whatever Arcnet card they may be using.  For example, attempting to use this driver with Pure Data's LAN driver would appear to work.  However, it does have one known problem.  SPX packets larger than 504 bytes can not be sent.  The workstation nor the application hang when this happens.  Those larger packets are simply not sent.  This occurs regardless of the configured maximum size established during "genning".  The TRXNet driver is Novell certified to run ONLY on the RXNET and RXNet2 cards which are no longer developed.  The drivers, however, are still updated and maintained.
  21156.  
  21157. SOLUTION
  21158.  
  21159.     The LAN driver to use should be Pure Data's own LAN driver.
  21160.  
  21161.  
  21162.  
  21163.  
  21164. FYI:    XQL and Turbo Pascal For Windows
  21165.                                      FYI
  21166.  
  21167. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21168.  
  21169.           TITLE:    XQL and Turbo Pascal For Windows
  21170.     DOCUMENT ID:    FYI.A.1236
  21171.            DATE:    14JUL91
  21172.         PRODUCT:    Windows
  21173. PRODUCT VERSION:    XQL 2.x & Windows 3.x
  21174.      SUPERSEDES:    NA
  21175.  
  21176.         SYMPTOM:    NA
  21177.  
  21178. ISSUE/PROBLEM
  21179.  
  21180.     How do you call XQL functions from Turbo Pascal for Windows?
  21181.  
  21182. SOLUTION
  21183.  
  21184.     Below are example definitions of Windows XQL calls using Turbo Pascal for Windows.  Included with the XQL for Windows Requestor DLL package is a file, XQLCALLS.H, which contains all the C function prototypes for all XQL calls.  Calling these functions from Turbo Pascal, as you can see below, is a matter of converting the function prototypes from C format to Pascal format.
  21185.  
  21186.     A simple rule to follow is if the C data type begins with LP (Long Pointer), use the VAR keyword in front of the parm definition.  If LP doesn't precede the C data type, do not use the VAR keyword.
  21187.  
  21188.      /********************* XQLLogin ****************************/
  21189.      /* C Version */
  21190.      extern int far pascal XQLLogin (LPBYTE,
  21191.                                      LPBYTE,
  21192.                                      LPBYTE,
  21193.                                      LPBYTE,
  21194.                                      LPBYTE,
  21195.                                      WORD);
  21196.  
  21197.      /* Pascal Version */
  21198.      Function XQLLogin  (var  parm1: Byte;
  21199.                          var  parm2: Byte;
  21200.                          var  parm3: Byte;
  21201.                          var  parm4: Byte;
  21202.                               parm5: Word): integer; far;
  21203.                             external 'WXQLCALL';
  21204.  
  21205.      /********************** XQLCompile ************************/
  21206.      /* C Version */
  21207.      extern int far pascal XQLCompile (WORD,
  21208.                                        LPWORD,
  21209.                                        LPBYTE);
  21210.      /* Pascal version */
  21211.      Function XQLCompile (    parm1: Word;
  21212.                           var parm2: Word;
  21213.                           var parm3: Byte): integer; far;
  21214.                             external 'WXQLCALL';
  21215.  
  21216.      /*************************xCompute**************************/
  21217.      /* C Version */
  21218.      extern int far pascal xCompute (WORD,
  21219.                                      LPBYTE,
  21220.                                      WORD,
  21221.                                      WORD,
  21222.                                      WORD,
  21223.                                      LPWORD,
  21224.                                      LPBYTE);
  21225.  
  21226.      /* Pascal Version */
  21227.      Functon xCompute    (    parm1: Word;
  21228.                           var parm2: Byte;
  21229.                               parm3: Word;
  21230.                               parm4: Word;
  21231.                           var parm5: Word;
  21232.                           var parm6: Byte): integer; far;
  21233.                            external 'WXQLCALL';
  21234.  
  21235.  
  21236.  
  21237.  
  21238. FYI:    NLM SDKa & Number of Global Semaphores
  21239.                                      FYI
  21240.  
  21241. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21242.  
  21243.           TITLE:    NLM SDKa & Number of Global Semaphores
  21244.    DOCUMENT ID#:    FYI.A.2621
  21245.            DATE:    12JUL91
  21246.         PRODUCT:    Network C for NLMs
  21247. PRODUCT VERSION:    SDKa
  21248.      SUPERSEDES:    N/A
  21249.         SYMPTOM:    N/A
  21250.  
  21251. ISSUE/PROBLEM
  21252.  
  21253.     On NetWare 3.11, the number of semaphores that can be opened corresponds directly with the number of LOCKs that the file server can handle for a workstation (connection).  The default is 500.  If more are required the number of locks must be increased.  In most cases it is obviously sufficient but when more are needed the SET console command is used, option 6 - LOCKS. The MAXIMUM LOCKS PER CONNECTION needs to be set to the desired value.
  21254.  
  21255. SOLUTION    N/A
  21256.  
  21257.  
  21258.  
  21259.  
  21260. FYI:    Difference between NetWare Btrieve NLM's 5.11 & v5.15
  21261.                                      FYI
  21262.  
  21263. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21264.  
  21265.           TITLE:    Difference between NetWare Btrieve NLM's 5.11 & v5.15
  21266.    DOCUMENT ID#:    FYI.A.2328
  21267.            DATE:    12JUL91
  21268.         PRODUCT:    NetWare Btrieve NLM
  21269. PRODUCT VERSION:    5.11/5.15
  21270.      SUPERSEDES:    N/A
  21271.         SYMPTOM:    In 5.11, workstations appear hung on Btrieve calls, but there are clues that Btrieve operations have been completed successfully. For example, a workstation may appear to "hang" on an open call, yet during the hang, the file is listed as open in Bconsole.
  21272.  
  21273. ISSUE/PROBLEM
  21274.  
  21275.     The Btrieve 5.11 NLM has a known problem that has been fixed in the 5.15 version. In 5.11, when each NLM engine thread received its response from the Btrieve engine, it queued the packets for Bspxcom to send back to the appropriate workstation.  Bspxcom handled the sends linearly (meaning another thread's packet wasn't sent until the previous thread's packet was received by the workstation).  In cases where many re-sends were necessary for a certain packet, Bspxcom would become a bottleneck.  Workstations making calls to Btrieve would appear hung.
  21276.  
  21277.     Further evidence of this situation is if in Bconsole, the numbers of packets sent and received match, but are less than the number of packets processed.  The fact that the number of packets processed is high reflects the many re-sends necessary for that packet.  In 5.15, each engine thread sends its own response to the appropriate workstation, and only sends information to Bspxcom to do the "bookkeeping."
  21278.  
  21279. SOLUTION
  21280.  
  21281.     Use the Btrieve NLM v5.15.
  21282.  
  21283.  
  21284.  
  21285.  
  21286. FYI:    Interfacing Btrieve for Windows with Microsoft Visual Basic
  21287.                                      FYI
  21288.  
  21289. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21290.  
  21291.           TITLE:    Interfacing Btrieve for Windows with Microsoft Visual Basic
  21292.    DOCUMENT ID#:    FYI.A.2102
  21293.            DATE:    12JUL91
  21294.         PRODUCT:    Btrieve for Windows
  21295. PRODUCT VERSION:    5.10
  21296.      SUPERSEDES:    N/A
  21297.         SYMPTOM:    N/A
  21298.  
  21299. ISSUE/PROBLEM
  21300.  
  21301.     As we all know, there is not a Btrieve for Windows interface for MS Visual Basic. However, by studying the WBTVINTF.C interface you can determine how the Btrieve Windows DLL expects the parameters on each Btrieve call:
  21302.  
  21303.     One method of calling Btrieve is to call BTRCALL().This method requires seven parameters.  It is done as such:
  21304.  
  21305.                  BTRCALL(int opcode,
  21306.                           (char far*) position_block,
  21307.                           (char far*) data_buffer,
  21308.                           (unsigned far*) data_buffer_length,
  21309.                           (char far*) key_buffer,
  21310.                           (unsigned char) key_buffer_length,
  21311.                           int key_number);
  21312.  
  21313.     Notice there is an additional parameter: key length.  This parameter is always set to 255.  Again, the best documentation on this is to look at the interface file and review the call to BTRCALL in the BTRV routine.
  21314.  
  21315.     In Visual Basic, the default is that all parameters passed to functions are passed by reference (by address).  Parameters that need to be passed by value,  need to be defined in the parameter list with the BYVAL keyword in front of each parameter. The following example will show how to initialize the Btrieve functions and make a simple Btrieve OPEN call in Visual Basic.
  21316.  
  21317.      Global Const BOPEN           =  0
  21318.      Global Const BINSERT         =  2
  21319.      Global Const BUPDATE         =  3
  21320.      Global Const BNEXT           =  6
  21321.      Global Const BPREVIOUS       =  7
  21322.      Global Const BGREATERorEQUAL =  9
  21323.      Global Const BFIRST          = 12
  21324.  
  21325.      TYPE PosBlk
  21326.       PBelements As String * 128
  21327.      END TYPE
  21328.  
  21329.      TYPE KeyBuffer
  21330.        FileName As String * 64
  21331.      END TYPE
  21332.  
  21333.      Declare Function wbtrvinit Lib "wbtrcall.dll" (init As Any) As Integer
  21334.      Declare Function wbtrvstop Lib "wbtrcall.dll" () As Integer Declare
  21335.      Function btrcall Lib "wbtrcall.dll" (ByVal op%, Pb As PosBlk, Db As Any,
  21336.                                          Dl As Integer, Kb As Any, ByVal Kl%,
  21337.                                          ByVal Kn%) As Integer
  21338.  
  21339.      Global init As String * 64
  21340.      init="/p:4096 /m:38 /u:2"   ----> or use WIN.INI
  21341.      x = wbtrvinit(init)
  21342.  
  21343.      TYPE PatientType
  21344.         PatID As Integer
  21345.         FirstName As String * 12
  21346.         MiddleName As String * 10
  21347.         LastName As String * 20
  21348.         StreetAddr As String * 25
  21349.         City As String * 15
  21350.         State As String * 2
  21351.         Zip As String * 10
  21352.         Phone As String * 12
  21353.      END TYPE
  21354.  
  21355.      Global PatientVar As PatientType
  21356.      Global PosBlock As PosBlk
  21357.      Global KeyBuff As KeyBuffer
  21358.  
  21359.      KeyBuff.FileName = "Patdata.btr"
  21360.      KeyBufLen = LEN(KeyBuffer)
  21361.      BufLen = LEN(PatientVar)
  21362.      KeyNum = 0
  21363.  
  21364.      Status% = btrcall(BOPEN, PosBlock, PatientVar, BufLen, KeyBuff, KeyBufLen,_KeyNum%)
  21365.  
  21366.      IF Status% <> 0 THEN
  21367.          PRINT"Error Opening File. Status = ";Status%
  21368.      END IF
  21369.  
  21370. SOLUTION    N/A
  21371.  
  21372.  
  21373.  
  21374.  
  21375. FYI:    Private Directory Attribute
  21376.                                      FYI
  21377.  
  21378. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21379.  
  21380.           TITLE:    Private Directory Attribute
  21381.    DOCUMENT ID#:    FYI.A.3330
  21382.            DATE:    11JUL91
  21383.         PRODUCT:    NetWare OS
  21384. PRODUCT VERSION:    2.15 and 2.20
  21385.      SUPERSEDES:    N/A
  21386.         SYMPTOM:    N/A
  21387.  
  21388. ISSUE/PROBLEM
  21389.  
  21390.     With the introduction of NetWare 2.15 a new directory attribute was added called the Private attribute.  This attribute prevents users from seeing subdirectories for which they do not have scan rights. This is similar to the default access users get with NetWare 3.x. This attribute can be set by using the FLAGDIR command line utility, or the FILER utility.
  21391.  
  21392.     This issue was brought up by a backup developer who wanted to know where the private attribute was stored, and how it was set/reset. The Private attribute is part of the directory attributes, and is set/reset by toggling the 7th bit (of 0-7) of the first byte of the directory attribute WORD.
  21393.  
  21394. SOLUTION    N/A
  21395.  
  21396.  
  21397.  
  21398.  
  21399. FYI:    The NetWare Shell and CHMOD
  21400.                                      FYI
  21401.  
  21402. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21403.  
  21404.           TITLE:    The NetWare Shell and CHMOD
  21405.    DOCUMENT ID#:    FYI.A.3329
  21406.            DATE:    11JUL91
  21407.         PRODUCT:    NetWare Shell
  21408. PRODUCT VERSION:    All
  21409.      SUPERSEDES:    N/A
  21410.         SYMPTOM:    Unable to reset the directory hidden and system directory attributes with the DOS CHMOD function.
  21411.  
  21412. ISSUE/PROBLEM
  21413.  
  21414.     The NetWare Shell will not allow the DOS CHMOD function to reset the hidden and system directory attributes.  This is due to the fact that the shell does not search for hidden or system directories when making the CHMOD call.
  21415.  
  21416. SOLUTION
  21417.  
  21418.     The next version of the shell should correct the problem.
  21419.  
  21420.  
  21421.  
  21422.  
  21423. FYI:    Documentation Bug in Network C for NLMs
  21424.                                      FYI
  21425.  
  21426. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21427.  
  21428.           TITLE:    Documentation Bug in Network C for NLMs
  21429.    DOCUMENT ID#:    FYI.A.3810
  21430.            DATE:    10JUL91
  21431.         PRODUCT:    Network C for NLMs
  21432. PRODUCT VERSION:    SDKa
  21433.      SUPERSEDES:    N/A
  21434.         SYMPTOM:    N/A
  21435.  
  21436. ISSUE/PROBLEM
  21437.  
  21438.     CopyToScreenMemory API has a parameter Rect which is documented as an output parameter. It should be an input parameter.
  21439.  
  21440. SOLUTION
  21441.  
  21442.     Correct your documentation.
  21443.  
  21444.  
  21445.  
  21446.  
  21447. FYI:    UPPER.ALT did not ship with Btrieve for OS/2 v5.10
  21448.                                      FYI
  21449.  
  21450. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21451.  
  21452.           TITLE:    UPPER.ALT did not ship with Btrieve for OS/2 v5.10
  21453.    DOCUMENT ID#:    FYI.A.2326
  21454.            DATE:    10JUL91
  21455.         PRODUCT:    Btrieve for OS/2
  21456. PRODUCT VERSION:    5.10
  21457.      SUPERSEDES:    N/A
  21458.         SYMPTOM:    N/A
  21459.  
  21460. ISSUE/PROBLEM
  21461.  
  21462.     This was an oversight, and UPPER.ALT should be made available to OS/2 Btrieve owners who want it.
  21463.  
  21464. SOLUTION    N/A
  21465.  
  21466.  
  21467.  
  21468.  
  21469. FYI:    Error in XQLVersion Function in XQLMTRBO.PAS Interface
  21470.                                      FYI
  21471.  
  21472. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21473.  
  21474.           TITLE:    Error in XQLVersion Function in XQLMTRBO.PAS Interface
  21475.    DOCUMENT ID#:    FYI.A.1735
  21476.            DATE:    10JUL91
  21477.         PRODUCT:    XQL for DOS
  21478. PRODUCT VERSION:    2.11
  21479.      SUPERSEDES:    N/A
  21480.         SYMPTOM:    Application with an XQLVersion call using the Turbo Pascal interface XQLMTRBO.PAS (17,837 bytes, 8-24-90) will not compile.
  21481.  
  21482. ISSUE/PROBLEM
  21483.  
  21484.     The function parameter for an XQLVersion call is set up incorrectly in the Turbo Pascal interface for XQLM.  You will not be able to use this function unless you modify and re-compile the interface.
  21485.  
  21486. SOLUTION
  21487.  
  21488.     Make the following modification to lines 68 and 626 of XQLMTRBO.PAS:
  21489.  
  21490.         Old Line: FUNCTION XQLVersion ( VBUFFER : INTEGER ) : INTEGER;
  21491.         New Line: FUNCTION XQLVersion ( VAR VBUFFER ) : INTEGER;
  21492.  
  21493.     Your application should be passing in a record structure consisting of two 2-byte integers to retrieve the version and revision of XQL/NSREQ that is loaded.
  21494.  
  21495.  
  21496.  
  21497.  
  21498. FYI:    Btrieve Reset of Another Workstation
  21499.                                      FYI
  21500.  
  21501. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21502.  
  21503.           TITLE:    Btrieve Reset of Another Workstation
  21504.    DOCUMENT ID#:    FYI.A.2329
  21505.            DATE:    09JUL91
  21506.         PRODUCT:    NetWare Btrieve
  21507. PRODUCT VERSION:    5.0, 5.10, and 5.15
  21508.      SUPERSEDES:    N/A
  21509.         SYMPTOM:    N/A
  21510.  
  21511. ISSUE/PROBLEM
  21512.  
  21513.     How do you reset another workstation using either "BUTIL -Reset <conn #>" or Btrieve operation 28, with -1 as the key number, and the connection number to be reset in the key buffer?
  21514.  
  21515.     This operation works ONLY IF the workstation trying to do the resetting has established a connection with Btrieve. Otherwise a status of 0 is returned, but nothing has been done.  The connection can be established with a simple "BUTIL -Stat" on any file.  The fact that the connection must be established first is considered an omission in the documentation rather than a problem with Btrieve.
  21516.  
  21517.     As a side-effect, if the resetter workstation, and the resettee are both attached to ANOTHER file server, say fs #2, and the resettee happens to have the same connection number on fs #2 as it did on the first file server, the resettee will also be reset on fs #2.  (This problem is currently being addressed-- 7/9/91.)
  21518.  
  21519.  
  21520.  
  21521.  
  21522. FYI:    Invalid Session ID or Short Session Name Error
  21523.                                      FYI
  21524.  
  21525. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21526.  
  21527.           TITLE:    Invalid Session ID or Short Session Name Error
  21528.    DOCUMENT ID#:    FYI.A.2814
  21529.            DATE:    08JUL91
  21530.         PRODUCT:    NETWARE 3270 TOOLS
  21531. PRODUCT VERSION:    1.5
  21532.      SUPERSEDES:    N/A
  21533.         SYMPTOM:    N/A
  21534.  
  21535. ISSUE/PROBLEM
  21536.  
  21537.     Error saying invalid Session ID or Short Session Name in 3270 CUT or DFT emulators.
  21538.  
  21539. SOLUTION
  21540.  
  21541.     If you using a NetWare 3270 CUT Workstation control programs, the Session ID or the Session short name must be 'E'.  If you are using a DFT emulator the Session ID can be any alphabetic character.  Session ID for DFT or CUT emulator is defined in WSCONFIG while configuring WSLAN  and it is also displayed on the OIA area or the Status line at offset 1939.
  21542.  
  21543.  
  21544.  
  21545.  
  21546. FYI:    Btrieve Status 2
  21547.                                      FYI
  21548.  
  21549. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21550.  
  21551.           TITLE:    Btrieve Status 2
  21552.    DOCUMENT ID#:    FYI.A.2327
  21553.            DATE:    08JUL91
  21554.         PRODUCT:    NetWare Btrieve NLM
  21555. PRODUCT VERSION:    5.10a
  21556.      SUPERSEDES:    N/A
  21557.         SYMPTOM:    Status 2 that disappears when the operation is retried.
  21558.  
  21559. ISSUE/PROBLEM
  21560.  
  21561.     The Btrieve 5.10a NLM which shipped with NetWare 3.10 has a known problem that has been fixed in the 5.15 version.  The problem is a status 2 that disappears when the operation is re-executed.  The scenario in which this problem occurs is: 1 workstation is reading from the file, and concurrently another workstation is opening the file in a transaction.  I will use the term "thread for a workstation, because the NLM views each Btrieve call as an engine thread.  In fact, one of the parameters for loading Bspxcom is the number of engine threads (as opposed to the advertiser thread and SPX manager thread which is always number 1).
  21562.  
  21563.     Consider that thread #1 requests a read from a file. It gets the file handle from the Active File List and sends it as a value parameter to the read function.  The read causes context switch to another thread. The second thread wants to open that file in a transaction. The normal procedure is for Btrieve to close the file to the task that had it open, and reopen it under TTS with a different file handle (this is true always--TTS is available whether files are flagged transactional or not).  By the time that the first thread is ready to read, the file handle is no longer valid.  A retry of this operation causes Btrieve to go back to the AFL to get the file handle, and this time it will be valid.  The 5.15 NLM solves this conflict by sending the address of the handle pointer instead of its value.
  21564.  
  21565. SOLUTION
  21566.  
  21567.     Use the Btrieve NLM v5.15, or trap for status 2 and retry the operation.
  21568.  
  21569.  
  21570.  
  21571.  
  21572. FYI:    Btrieve NLM on NetWare 3.11
  21573.                                      FYI
  21574.  
  21575. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21576.  
  21577.           TITLE:    Btrieve NLM on NetWare 3.11
  21578.    DOCUMENT ID#:    FYI.A.2213
  21579.            DATE:    03JUL91
  21580.         PRODUCT:    NetWare Btrieve NLM
  21581. PRODUCT VERSION:    5.10
  21582.      SUPERSEDES:    N/A
  21583.         SYMPTOM:    Server crashes with General Protection Processor Exception running the console command process.
  21584.  
  21585. ISSUE/PROBLEM
  21586.  
  21587.     The reason we state that NetWare Btrieve 5.10 will NOT run on NetWare 3.11 is that if Btrieve is loaded immediately after the file server is booted, it will cause the server to crash with "General Protection Processor Exception".  Now, depending on what other NLM's the user has loaded and unloaded on the server, it is possible to get Btrieve NLM 5.10 to load, and it will run if you can get it loaded.  However, this is not a clean way to run Btrieve and it isn't guaranteed to work every time.
  21588.  
  21589.     Btrieve 5.10 NLM crashes when loaded on NetWare 3.11 because it has its own startup code that is not from CLIB even though it does make CLIB calls.  Btrieve 5.15 NLM which ships with NetWare 3.11 was linked with PRELUDE.OBJ and is using this module for startup.
  21590.  
  21591. SOLUTION
  21592.  
  21593.     Run the version of Btrieve that is shipped with NetWare 3.11 which is Btrieve 5.15.
  21594.  
  21595.  
  21596.  
  21597.  
  21598. FYI:    BCONSOLE.EXE Memory Usage
  21599.                                      FYI
  21600.  
  21601. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21602.  
  21603.           TITLE:    BCONSOLE.EXE Memory Usage
  21604.    DOCUMENT ID#:    FYI.A.3006
  21605.            DATE:    01JUL91
  21606.         PRODUCT:    NetWare Btrieve / BCONSOLE.EXE
  21607. PRODUCT VERSION:    5.15
  21608.      SUPERSEDES:    N/A
  21609.         SYMPTOM:    If several files are opened by NetWare Btrieve, BCONSOLE.EXE returns "-2 on CreatePortal".
  21610.  
  21611. ISSUE/PROBLEM
  21612.  
  21613.     BCONSOLE.EXE does not use expanded or extended memory.  Only conventional memory is used.  Thus, if you don't have enough memory available, Bconsole might fail to show you the information you are looking for.  For example, if several files are opened and you choose "Active File", you might get "-2 on CreatePortal".  Bconsole returns this error message simply because there isn't enough memory available to be allocated.  In other words, the attempt to malloc space has failed.
  21614.  
  21615. SOLUTION    N/A
  21616.  
  21617.  
  21618.  
  21619.  
  21620. FYI:    Performance of Extended Inserts vs. Single Inserts
  21621.                                      FYI
  21622.  
  21623. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21624.  
  21625.           TITLE:    Performance of Extended Inserts vs. Single Inserts
  21626.    DOCUMENT ID#:    FYI.A.1831
  21627.            DATE:    28JUN91
  21628.         PRODUCT:    Btrieve for Dos
  21629. PRODUCT VERSION:    5.10a
  21630.      SUPERSEDES:    N/A
  21631.         SYMPTOM:    Slower performance with extended inserts
  21632.  
  21633. ISSUE/PROBLEM
  21634.  
  21635.     Several people have noticed that extended inserts in the DOS environment are slower than single inserts.  It will take less time to insert 200 records 1 at a time than 200 records 20 at a time.
  21636.  
  21637. SOLUTION
  21638.  
  21639.     The reason for this is pre-imaging.  With the extended functions, the pre-image file is expanded on every record, much like in a transaction. This creates I/O overhead and creates performance degradation.  The single inserts only have to manage the pages for the duration of the single insert.
  21640.  
  21641.  
  21642.  
  21643.  
  21644. FYI:    Choosing a /S Parameter for Brequest
  21645.                                      FYI
  21646.  
  21647. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21648.  
  21649.           TITLE:    Choosing a /S Parameter for Brequest
  21650.    DOCUMENT ID#:    FYI.A.1830
  21651.            DATE:    28JUN91
  21652.         PRODUCT:    NetWare Btrieve NLM
  21653. PRODUCT VERSION:    5.15
  21654.      SUPERSEDES:    N/A
  21655.         SYMPTOM:    N/A
  21656.  
  21657. ISSUE/PROBLEM
  21658.  
  21659.     Choosing an appropriate /S parameter for Brequest can be confusing at times. Starting with Brequest version 5.15 one can choose their S parameter based upon the number of servers which are advertising Btrieve which they are attached to.  Here is the formula:
  21660.  
  21661.     /S  =  Servers Advertising Btrieve + 1
  21662.  
  21663.     The +1 is necessary for a work space. When you log into a server and load Brequest it starts with the server you are logged into and checks to see if it's a Btrieve server; if so, it retains it in the buffer, if not, it throws it away.  So, lets say you are attached to 4 servers, 3 advertising Btrieve. It begins checking: each one of the Btrieve servers is given it's buffer, then the next two servers are checked.  Because they are non-Btrieve servers they are rejected and the buffer is freed.  However the buffer had to be there in order to check for Btrieve advertisements.
  21664.  
  21665.     In previous versions of Brequest the /S parameter could be set very high (20 - 30).  The reason for this is because Brequest would keep track of all servers advertising Btrieve across a network regardless of the user being attached.
  21666.  
  21667. SOLUTION    N/A
  21668.  
  21669.  
  21670.  
  21671.  
  21672. FYI:    BROLLFWD Documentation error
  21673.                                      FYI
  21674.  
  21675. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21676.  
  21677.           TITLE:    BROLLFWD Documentation error
  21678.    DOCUMENT ID#:    FYI.A.2407
  21679.            DATE:    27JUN91
  21680.         PRODUCT:    Btrieve for MS-Windows, WBROLL
  21681. PRODUCT VERSION:    5.10, 5.12
  21682.      SUPERSEDES:    N/A
  21683.         SYMPTOM:    Error message "Record(s) length over current data buffer sizes in <filename path>" returned when running WBROLL to roll forward a file.
  21684.  
  21685. ISSUE/PROBLEM
  21686.  
  21687.     There is a documentation error in the "Btrieve for MS-Windows Installation and Operation" manual on page 2-13.  The databufferlen parameter under [wbroll] in the WIN.INI file should be spelled datalength.
  21688.  
  21689. SOLUTION    N/A
  21690.  
  21691.  
  21692.  
  21693.  
  21694. FYI:    Jerusalem B Virus Destroying Server.exe and Ipx.com
  21695.                                      FYI
  21696.  
  21697. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21698.  
  21699.           TITLE:    Jerusalem B Virus Destroying Server.exe and Ipx.com
  21700.    DOCUMENT ID#:    FYI.P.9504
  21701.            DATE:    24JUN91
  21702.         PRODUCT:    NetWare
  21703. PRODUCT VERSION:    v3.10
  21704.      SUPERSEDES:    NA
  21705.  
  21706.         SYMPTOM:    NA
  21707.  
  21708. ISSUE/PROBLEM
  21709.  
  21710.     A customer who had installed 3.1 was getting GPPE errors as well as workstations randomly hanging and locking up after ipx was run more than once.
  21711.  
  21712. SOLUTION
  21713.  
  21714.     He did a virus scan and discovered that he had been infected by the Jerusalem B and it was destroying both server.exe and ipx.com.  He got rid of it and has been going for a week with no problems.
  21715.  
  21716.  
  21717.  
  21718.  
  21719. FYI:    Problem with AFPGetFileInformation API
  21720.                                      FYI
  21721.  
  21722. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21723.  
  21724.           TITLE:    Problem with AFPGetFileInformation API
  21725.    DOCUMENT ID#:    FYI.A.3809
  21726.            DATE:    21JUN91
  21727.         PRODUCT:    CLIB
  21728. PRODUCT VERSION:    3.11
  21729.      SUPERSEDES:    N/A
  21730.         SYMPTOM:    N/A
  21731.  
  21732. ISSUE/PROBLEM
  21733.  
  21734.     AFPGetFileInformation is supposed to return a length preceded string in the field longname of the structure AFPFileInfo. However, it does not. It only returns the null terminating string.
  21735.  
  21736. SOLUTION    N/A
  21737.  
  21738.  
  21739.  
  21740.  
  21741. FYI:    Extended Attributes (C Interface - DOS)
  21742.                                      FYI
  21743.  
  21744. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21745.  
  21746.           TITLE:    Extended Attributes (C Interface - DOS)
  21747.    DOCUMENT ID#:    FYI.A.1620
  21748.            DATE:    21JUN91
  21749.         PRODUCT:    NA
  21750. PRODUCT VERSION:    NA
  21751.      SUPERSEDES:    NA
  21752.  
  21753.         SYMPTOM:    NA
  21754.  
  21755. ISSUE/PROBLEM
  21756.  
  21757.     The functions SetExtendedAttributes and GetExtendedAttributes behave differently on NW 286 and NW 386.
  21758.  
  21759.     On NW 286, all bits can be set and all bits are returned, including bits 6 and 7 (Read Audit and Write Audit), which are currently not used, and bit 3 (marked as reserved).
  21760.  
  21761.     On NW 386, only bits 0, 1, 2, and 4 can be set.
  21762.  
  21763.     Bits 0, 1, and 2 make up the search mode of the file, similar to the default search mode of the workstation.  These bits can be changed via Get/SetExtendedAttributes or the SMODE utility shipped with NetWare.  Bit 4 is the transaction bit.  Bit 5 is the Index bit (which is normally only settable on NW 286).
  21764.  
  21765.  
  21766.  
  21767.  
  21768. FYI:    NetWork C for NLM's - SDKa, CLIB 3.11
  21769.                                      FYI
  21770.  
  21771. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21772.  
  21773.           TITLE:    NetWork C for NLM's - SDKa, CLIB 3.11
  21774.    DOCUMENT ID#:    FYI.A.2618
  21775.            DATE:    20JUN91
  21776.         PRODUCT:    NA
  21777. PRODUCT VERSION:    NA
  21778.      SUPERSEDES:    NA
  21779.  
  21780.         SYMPTOM:    NA
  21781.  
  21782. ISSUE/PROBLEM
  21783.  
  21784.     There is a problem when volumes are dismounted from a server when trying to obtain volume information via volume numbers.
  21785.  
  21786.     The API of concern is the GetVolumeInfoWithNumber.  It accepts a volume number as its input parameter.  Due to a small bug in CLib, the volume numbers do not correctly map to volumes when volume(s) have been deleted.
  21787.  
  21788.     Suppose for example you have 3 volumes: SYS:, VOL1: and VOL2:, and VOL1 is dismounted.  Then the volumes still mounted have the numbers 0 & 2.  1 is the dismounted volume.  Carrying out a GetVolumeInfoWithNumber(1) will NOT return an error indicating that that volume is dismounted, but returns the information for VOL2, number 2.
  21789.  
  21790.     There is no real workaround, except for the user to also carry out the API GetVolumeName on that volume.  It works correctly and will return an error on dismounted volumes.  Using these API's together the user may successfully get information on the correct volumes.
  21791.  
  21792.  
  21793.  
  21794.  
  21795. FYI:    Xtrieve v4.01a patching XQL
  21796.                                      FYI
  21797.  
  21798. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21799.  
  21800.           TITLE:    Xtrieve v4.01a patching XQL
  21801.    DOCUMENT ID#:    FYI.A.2207
  21802.            DATE:    20JUN91
  21803.         PRODUCT:    XQL
  21804. PRODUCT VERSION:    NA
  21805.      SUPERSEDES:    NA
  21806.  
  21807.         SYMPTOM:    NA
  21808.  
  21809. ISSUE/PROBLEM
  21810.  
  21811.     As of 6/20/91 the XQL 2.01 patches (using PI.EXE) are unable to patch the copy of XQLP.EXE and XQLPO.EXE that shipped with Xtrieve Plus 4.01a.
  21812.  
  21813.      XQL 2.01 released:  XQLP.EXE        158736     30 Aug 88   8:30 am
  21814.                           XQLPO.EXE    162736     29 Aug 88   7:58 pm
  21815.  
  21816.     Xtrieve PLUS 4.01a released XQLP[O] 2.01 with all the patches available to date, when Xtrieve came out Xtrieve's XQL 2.01 released:
  21817.  
  21818.           XQLP.EXE   158736   23 Jan 89   1:24 pm
  21819.           XQLPO.EXE  162736   13 Jan 89   5:04 pm
  21820.  
  21821.     The problem: PI ensures that the user is patching an ORIGINAL copy of the product; Xtrieve Plus 4.01a did not ship an original copy of XQLP, XQLPO.
  21822.  
  21823.  
  21824.  
  21825.  
  21826. FYI:    BROUTER's Purpose in Life
  21827.                                      FYI
  21828.  
  21829. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21830.  
  21831.           TITLE:    BROUTER's Purpose in Life
  21832.    DOCUMENT ID#:    FYI.A.1612
  21833.            DATE:    20JUN91
  21834.         PRODUCT:    NA
  21835. PRODUCT VERSION:    NA
  21836.      SUPERSEDES:    NA
  21837.  
  21838.         SYMPTOM:    NA
  21839.  
  21840. ISSUE/PROBLEM
  21841.  
  21842.     The usage of BROUTER (.NLM or .VAP) needs to be clarified.  BROUTER is NOT needed just because multiple servers are running BTRIEVE.NLM or BSERVER.VAP. Although this information has been repeated time and again, I still speak with people who think differently.
  21843.  
  21844.     If all that is loaded at the server(s) is Btrieve, and only work stations are accessing Btrieve, then BROUTER is NOT needed, at all!
  21845.  
  21846.     A Btrieve VAP (or NLM) on server A does not need to talk to a Btrieve VAP (or NLM) on server B, and therefore does NOT require BROUTER.  Just because you want to access multiple Btrieve files across multiple servers, doesn't mean you need BROUTER loaded.
  21847.  
  21848.     So, what is BROUTER for?  BROUTER is used for a SERVER PROCESS (VAP or NLM) to access BSERVER.VAP or BTRIEVE.NLM.  The only Novell server process that currently requires BROUTER is the SQL server process (NW$SQL.VP0 or NWSQL.NLM).  There is a difference, though, between the needs of the VAP environment vs. the needs of the NLM environment.
  21849.  
  21850.     In the VAP environment, BROUTER.VAP is required for NW$SQL.VP0 to access local files, as well as files on other servers with either BSERVER.VAP or BTRIEVE.NLM loaded.
  21851.  
  21852.     In the NLM environment, BROUTER.NLM is required for NWSQL.NLM to access files on other servers, but NOT on the local file server (this is because BTRIEVE.NLM is a library and can be accessed directly by another NLM on the same server).  In this case, BROUTER only needs to be loaded on the server running the NWSQL.NLM.    It then communicates directly with Btrieve at the other file servers, not via a BROUTER on those servers.
  21853.  
  21854.     The best way to think of BROUTER is as a requester for servers. Only SERVER PROCESSES need to use BROUTER.  If you have three servers with Btrieve loaded on them, and are only accessing these Btrieve files from work stations, you do NOT need BROUTER loaded.
  21855.  
  21856.     Currently, the only Novell product that uses BROUTER is the SQL product. And then, only if a) it is NW$SQL.VP0, or b) it is either SQL product and needs to access Btrieve files which reside on another server.
  21857.  
  21858.  
  21859.  
  21860.  
  21861. FYI:    Btrieve v5.10 for Windows Requester and 3C501 card
  21862.                                      FYI
  21863.  
  21864. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21865.  
  21866.           TITLE:    Btrieve v5.10 for Windows Requester and 3C501 card
  21867.    DOCUMENT ID#:    FYI.A.3005
  21868.            DATE:    19JUN91
  21869.         PRODUCT:    Btrieve
  21870. PRODUCT VERSION:    5.10
  21871.      SUPERSEDES:    NA
  21872.  
  21873.         SYMPTOM:    NA
  21874.  
  21875. ISSUE/PROBLEM
  21876.  
  21877.     Product: Btrieve For Windows Requester with Btrieve NLM
  21878.  
  21879.     Version: 5.10 (patched)
  21880.  
  21881.     Short Description:    Btrieve for Windows requester does not work with 3C501 card in enhanced mode.
  21882.  
  21883.     Solution: Use some other cards!
  21884.  
  21885.     There is a problem with running Btrieve for Windows in enhanced mode with the 501 3-com card.  The performance is extremely bad which makes the user think the workstation is hung.
  21886.  
  21887.     The problem can be duplicated using BTRTOOLS.  Enter BTRTOOLS, open a file, do some Btrieve operations, close the file and exit BTRTOOLS. If you look at BCONSOLE.NLM, it shows that all files are closed.  Now, bring up BTRTOOLS for the second time and try to open any Btrieve file.
  21888.  
  21889.     It takes between 3 to 20 minutes for BTRTOOLS to return a status code. It seems to open the file immediately (BCONSOLE.NLM shows that the file is opened), but control is not returned to BTRTOOLS right away.
  21890.  
  21891.     Two customers reported that their workstations were hung; but, replacing the card seemed to solve the problem.
  21892.  
  21893.  
  21894.  
  21895.  
  21896. FYI:    Drivers and the Windows Environment
  21897.                                      FYI
  21898.  
  21899. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21900.  
  21901.           TITLE:    Drivers and the Windows Environment
  21902.    DOCUMENT ID#:    FYI.A.2617
  21903.            DATE:    19JUN91
  21904.         PRODUCT:    NA
  21905. PRODUCT VERSION:    NA
  21906.      SUPERSEDES:    NA
  21907.  
  21908.         SYMPTOM:    NA
  21909.  
  21910. ISSUE/PROBLEM
  21911.  
  21912.     Here are a few pointers to watch out for when people are trying to get their Windows 3.0 running on NetWare 2.X or 3.X.
  21913.  
  21914.     1)    Virtual drivers: *VPIC (Windows internal driver) is not recommended; *VPICD has some bugs (mainly when IRQ's 2 & 9 were used).  The replacement is VPICDA.386.  This driver is activated by placing it into the SYSTEM.INI file in the Enhanced area:
  21915.  
  21916.              device=VPCIDA.386
  21917.  
  21918.         It is recommended that this be done in all cases, but is only required for the ENHANCED mode.
  21919.  
  21920.     2)    Choosing IRQ's: Here is the scoop on IRQ's.
  21921.             IRQ 2:    Most people as a default use IRQ 2. Not a bad choice except that the Slave controller (8259 chip) shares IRQ 2, which at times causes problems.  This problem may be contributed to by not using the VPCIDA.386 driver.
  21922.  
  21923.             IRQ 3 & 4:    Respective Comm ports 2 & 1.  These are a good choice except when actual devices are already occupying the ports.  The user must determine if there can be used successfully. (i.e. if they are free ports)
  21924.  
  21925.             IRQ 5 & 7:    Respective PRN ports 2 & 1.  5 is an obvious choice here since most people do not have 2 PRN devices on their PC's.  However, using a PRN port may require the disabling of the port itself to get it off the IRQ line even if a device is not hooked up.
  21926.  
  21927.     3)    The other already known or mentioned items include the deletion of the VIPX.386 driver from the Enhanced section in the SYSTEM.INI file. This was to be the virtual driver for communication oriented system requests, but it is currently broken.  PROVO is working quite hard at getting a new one.  Therefore, as you may already know, to virtualize communication-oriented applications in DOS boxes, the use of TBMI/TASKID TSR's is required.  For info on this, please refer to the TBMI.ZIP file on Compuserve.
  21928.  
  21929.     4)    VNETWARE.386 - driver whose purpose is to virtualize NetWare requests. I do not have any further information on this.
  21930.  
  21931.     5)    NETWARE.DRV - driver that contains code as dictated by the Microsoft C Driver Development Kit (DDK) as to the minimum required functions for NetWorking support.  These functions allow Windows to talk to the NetWork.  More functionality will be provided for applications and even our own Windows SDK.
  21932.  
  21933.  
  21934.  
  21935.  
  21936. FYI:    XQL Pre-Processor v8 and Microsoft C 6.0
  21937.                                      FYI
  21938.  
  21939. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21940.  
  21941.           TITLE:    XQL Pre-Processor v8 and Microsoft C 6.0
  21942.    DOCUMENT ID#:    FYI.A.2504
  21943.            DATE:    19JUN91
  21944.         PRODUCT:    XQL
  21945. PRODUCT VERSION:    NA
  21946.      SUPERSEDES:    NA
  21947.  
  21948.         SYMPTOM:    NA
  21949.  
  21950. ISSUE/PROBLEM
  21951.  
  21952.     When precompiling with XQL pre-processor v.8 and Microsoft C version 6.0, the precompiler may generate the following messages:
  21953.  
  21954.        e1009 invalid declarator
  21955.        e1026 semicolon; not volatile.
  21956.  
  21957.     These errors are generated only when using Microsoft C v6.0 and can be ignored.  The code generated by the pre-processor will work correctly.
  21958.  
  21959.  
  21960.  
  21961.  
  21962. FYI:    Microsoft Basic and Btrieve v5.10a for DOS
  21963.                                      FYI
  21964.  
  21965. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  21966.  
  21967.           TITLE:    Microsoft Basic and Btrieve v5.10a for DOS
  21968.    DOCUMENT ID#:    FYI.A.3004
  21969.            DATE:    18JUN91
  21970.         PRODUCT:    Btrieve
  21971. PRODUCT VERSION:    5.10A
  21972.      SUPERSEDES:    NA
  21973.  
  21974.         SYMPTOM:    NA
  21975.  
  21976. ISSUE/PROBLEM
  21977.  
  21978.      Short Description:    Memory is not released when Btrieve is loaded and  unloaded in a Basic application that chains programs  together.
  21979.  
  21980.      Status:  This is not a Btrieve bug.
  21981.  
  21982.      Solution:    Unload Btrieve before chaining to another program.  This is because Basic loads a file into memory when it chains two programs.
  21983.  
  21984.     Consider a Microsoft Basic application that contains two program modules, program A and program B.  Program A chains to program B.  Program A loads Btrieve and program B unloads Btrieve by executing operation 25.  Even though Btrieve is unloaded (any Btrieve operation returns status 20), the memory that was occupied by Btrieve is not released.  In other words, that part of memory cannot be reused until you terminate the application.  This is because Basic loads something into memory when you chain to another program.  Thus, the free memory in the middle is not seen by the application.
  21985.  
  21986.     The following is what memory look like before and after loading and unloading Btrieve:
  21987.  
  21988.         Memory after loading Btrieve in program A:
  21989.         1000:  other
  21990.         2ffc:  memory occupied by Btrieve
  21991.         36dc:  free
  21992.  
  21993.         Memory after chaining to program B;
  21994.         1000:  other
  21995.         2ffc:  memory occupied by Btrieve
  21996.         36dc:  file loaded into memory by Basic after chaining
  21997.         37dc:  free
  21998.  
  21999.         Memory after unloading Btrieve:
  22000.         1000:  other
  22001.         2ffc:  free
  22002.         36dc:  file loaded into memory by basic after chaining
  22003.         37dc:  free
  22004.  
  22005.     The area between 2FFC and 36DC is not available since TSRs are not unloaded in First In Last Out basis.
  22006.  
  22007.  
  22008.  
  22009.  
  22010. FYI:    Drive Mappings and the Windows Environment
  22011.                                      FYI
  22012.  
  22013. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22014.  
  22015.           TITLE:    Drive Mappings and the Windows Environment
  22016.    DOCUMENT ID#:    FYI.A.2616
  22017.            DATE:    18JUN91
  22018.         PRODUCT:    NA
  22019. PRODUCT VERSION:    NA
  22020.      SUPERSEDES:    NA
  22021.  
  22022.         SYMPTOM:    NA
  22023.  
  22024. ISSUE/PROBLEM
  22025.  
  22026.     Plain and simply, you cannot allocate NEW search drives in a Windows application, but you can modify EXISTING search drives that will allow you to somewhat control the root environment.
  22027.  
  22028.     If the NWSHAREHANDLES = TRUE, the mapping is reflected in all VM's and the ROOT environment also.
  22029.  
  22030.     If NWSHAREHANDLES=FALSE, only newly started VM's will get the modified mapping; already running VM's will have the original mappings.  Here is the fun stuff, at least dealing with DOS Boxes. Suppose for example you have two DOS boxes with a search drive, let us say R:, mapped to different locations.  Then, if you delete R: using MAP.EXE from the first DOS box it will be deleted OK.  If you go to the second DOS box, the drive is no longer a search drive; it was modified via the global environment variable (i.e. the PATH variable), BUT it does exist as a NORMAL DRIVE.
  22031.  
  22032.     Also, you may notice that using normal non-Windows MAP.EXE, which is what most people out there have, does not modify the PATH variable in a DOS box.
  22033.  
  22034.     Also note that if using File Manager, running down a directory tree for any drive letter, will permanently change that drive mapping.  This includes search drives, which may permanently hamper some applications.
  22035.  
  22036.  
  22037.  
  22038.  
  22039. FYI:    Btrieve v5.10 NLM GPI on NetWare 3.1
  22040.                                      FYI
  22041.  
  22042. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22043.  
  22044.           TITLE:    Btrieve v5.10 NLM GPI on NetWare 3.1
  22045.    DOCUMENT ID#:    FYI.A.2206
  22046.            DATE:    18JUN91
  22047.         PRODUCT:    NetWare Btrieve
  22048. PRODUCT VERSION:    5.10
  22049.      SUPERSEDES:    NA
  22050.  
  22051.         SYMPTOM:    NA
  22052.  
  22053. ISSUE/PROBLEM
  22054.  
  22055.     Do not run NetWare Btrieve NLM version 5.10 (5.11) on NetWare 3.11.  It will GPI the server.  Why?  There were changes made to the operating system and CLIB.NLM between NetWare versions 3.10 and 3.11.  The Btrieve NLM version 5.10 was written and tested using NetWare 3.10 and it's CLIB.NLM. The changes to the internal resource tracking conventions of CLIB.NLM & NetWare 3.11 OS have a NEGATIVE affect on Btrieve NLM 5.10 - GPI's.
  22056.  
  22057.     As a side note:  NetWare Btrieve NLM version 5.15 WILL run on BOTH NetWare 3.10 and NetWare 3.11, however, it is only available with NetWare 3.11 as of 06/18/91.
  22058.  
  22059.  
  22060.  
  22061.  
  22062. FYI:    MapRoot
  22063.                                      FYI
  22064.  
  22065. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22066.  
  22067.           TITLE:    MapRoot
  22068.    DOCUMENT ID#:    FYI.A.3324
  22069.            DATE:    17JUN91
  22070.         PRODUCT:    NA
  22071. PRODUCT VERSION:    NA
  22072.      SUPERSEDES:    NA
  22073.  
  22074.         SYMPTOM:    NA
  22075.  
  22076. ISSUE/PROBLEM
  22077.  
  22078.     There has been a lot of discussion about MapRooted drives and the inability to get the full path specification of a MapRooted drive.  Well, there is a way to get the full path of a MapRooted drive.  Simply use the GetFullPath call from the Miscellaneous Services of the NetWare C Interface.  The path returned will include the server/vol:path.
  22079.  
  22080.     This will also help developers that need to use functions such as ScanFileEntry on MapRooted drives.  Perform the following functions to use these calls on MapRooted drives:
  22081.  
  22082.     GetFullPath - Returns the server/vol:path.
  22083.     ConvertNameToFullPath - Removes the server from the path.
  22084.     strcat - to concatenate your search parameters to the path obtained above.
  22085.     Pass a NULL directory handle to the function.
  22086.  
  22087.  
  22088.  
  22089.  
  22090. FYI:    TCP/IP WITH TLI
  22091.                                      FYI
  22092.  
  22093. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22094.  
  22095.           TITLE:    TCP/IP WITH TLI
  22096.    DOCUMENT ID#:    FYI.A.3214
  22097.            DATE:    17JUN91
  22098.         PRODUCT:    NA
  22099. PRODUCT VERSION:    NA
  22100.      SUPERSEDES:    NA
  22101.  
  22102.         SYMPTOM:    NA
  22103.  
  22104. ISSUE/PROBLEM
  22105.  
  22106.     Under version 3.11 of NetWare the t_bind call will not return the Internet Protocol (IP) address if you pass a zero in for the requested address.  This is because IP will only assign an address after you have requested a connection to another endpoint.
  22107.  
  22108.  
  22109.  
  22110.  
  22111. FYI:    Undocumented Btrieve Status Code 77
  22112.                                      FYI
  22113.  
  22114. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22115.  
  22116.           TITLE:    Undocumented Btrieve Status Code 77
  22117.    DOCUMENT ID#:    FYI.A.2015
  22118.            DATE:    17JUN91
  22119.         PRODUCT:    Btrieve
  22120. PRODUCT VERSION:    NA
  22121.      SUPERSEDES:    NA
  22122.  
  22123.         SYMPTOM:    NA
  22124.  
  22125. ISSUE/PROBLEM
  22126.  
  22127.     A status 77 needs to be added to the Btrieve v5.x documentation. It is not currently documented.
  22128.  
  22129.     A status 77 can be returned only from the Btrieve VAP or NLM when the engine is being accessed by another server based program, such as NetWare SQL.  With the Btrieve VAP, a status 77 can only be returned by BROUTER.VAP.  With the Btrieve NLM, a status 77 is returned from the Btrieve engine itself.
  22130.  
  22131.     With the VAP, a status 77 will be returned on an operation with a lock (wait or no wait) bias, if the requested resource is locked by another user.  A status 77 will also be returned if the application is in a wait transaction (119 or 319) and tries to access a file that is locked by another user.
  22132.  
  22133.     With the NLM, a status 77 will be returned to the calling program if a WAIT lock bias is specified for an operation and the requested resource is locked by another.  Also, as with the VAP, if in a wait transaction and the file to be accessed is locked by another application a 77 will be returned.
  22134.  
  22135.     The reason for this 77 being returned instead of waiting is as follows. When using the Btrieve requester to access Btrieve, the actual wait and retry when a resource is locked is done by the requester.  But, since a server based program is accessing Btrieve directly (or through Brouter for the VAP) if a wait was to be done invisibly to the programmer, it would have to be done by the Btrieve engine itself.  Since this would tie up the engine and lock out other users that might be trying to release the requested resource, Btrieve does not perform the wait.    Instead, Btrieve (or Brouter for the VAP) returns a status 77 and the requesting program can wait and retry.
  22136.  
  22137.  
  22138.  
  22139.  
  22140. FYI:    GetServerInformation (NetWare C Interface)
  22141.                                      FYI
  22142.  
  22143. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22144.  
  22145.           TITLE:    GetServerInformation (NetWare C Interface)
  22146.    DOCUMENT ID#:    FYI.A.1514
  22147.            DATE:    17JUN91
  22148.         PRODUCT:    NA
  22149. PRODUCT VERSION:    NA
  22150.      SUPERSEDES:    NA
  22151.  
  22152.         SYMPTOM:    NA
  22153.  
  22154. ISSUE/PROBLEM
  22155.  
  22156.     The documentation for the NetWare C Interface states that the GetServerInformation call is a NetWare 2.x specific call.  The documentation is incorrect, the GetServerInformation API call will also work under NetWare 3.x.
  22157.  
  22158.  
  22159.  
  22160.  
  22161. FYI:    NetWare-J & Invalid Filenames
  22162.                                      FYI
  22163.  
  22164. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22165.  
  22166.           TITLE:    NetWare-J & Invalid Filenames
  22167.    DOCUMENT ID#:    FYI.A.1228
  22168.            DATE:    17JUN91
  22169.         PRODUCT:    NA
  22170. PRODUCT VERSION:    NA
  22171.      SUPERSEDES:    NA
  22172.  
  22173.         SYMPTOM:    NA
  22174.  
  22175. ISSUE/PROBLEM
  22176.  
  22177.     A word of warning for anyone running standard NetWare 3.x and NetWare-Japan on the same server (alternately).  It works fine unless, while running NW-J, you name a file or directory with double-byte characters that will get interpreted by standard NW as invalid characters (e.g. '/;,?',etc...).
  22178.  
  22179.     If you name files with these invalid characters, then try to load standard NetWare, you will not be able to mount the volume.  You will have to run VREPAIR, which will detect the invalid names and change them to valid ones.
  22180.  
  22181.  
  22182.  
  22183.  
  22184. FYI:    Accelerated Access for Btrieve Files
  22185.                                      FYI
  22186.  
  22187. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22188.  
  22189.           TITLE:    Accelerated Access for Btrieve Files
  22190.    DOCUMENT ID#:    FYI.A.3907
  22191.            DATE:    14JUN91
  22192.         PRODUCT:    Btrieve
  22193. PRODUCT VERSION:    NA
  22194.      SUPERSEDES:    NA
  22195.  
  22196.         SYMPTOM:    NA
  22197.  
  22198. ISSUE/PROBLEM
  22199.  
  22200.     This FYI is intended to clarify accelerated access mode (AAM).  AAM is used to increase performance on file updates (inserts, updates, and deletes).
  22201.  
  22202.     It is a common misconception that AAM disables pre-imaging.  This is not true.  Pre-imaging is used by Btrieve for situations other then a system failure.  For example, Btrieve uses a pre-image roll back when a record with duplicate keys is attempted to be inserted.  If the last key contains a invalid duplicate value, then the previously inserted key values must be backed out.  Pre-imaging is used here even in AAM.
  22203.  
  22204.     In normal mode, when a file is updated, the pages being updated are copied into the pre-image buffers and the buffers are flushed to disk before the file is updated.  Accelerated access mode simply prevents Btrieve from flushing the pre-image buffers before each operation.  It is the flushing of the pre-image buffers that takes up a lot of time.
  22205.  
  22206.     If the pre-image buffer gets filled up (because a lot of pages are being modified) it will be flushed automatically.  This is why AAM may still result in pre-image files being created.
  22207.  
  22208.  
  22209.  
  22210.  
  22211. FYI:    Btrieve Status Code 22 on a STAT operation
  22212.                                      FYI
  22213.  
  22214. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22215.  
  22216.           TITLE:    Btrieve Status Code 22 on a STAT operation
  22217.    DOCUMENT ID#:    FYI.A.3906
  22218.            DATE:    14JUN91
  22219.         PRODUCT:    Btrieve
  22220. PRODUCT VERSION:    NA
  22221.      SUPERSEDES:    NA
  22222.  
  22223.         SYMPTOM:    NA
  22224.  
  22225. ISSUE/PROBLEM
  22226.  
  22227.     This FYI describes a common cause of a Status Code 22 (data buffer length error) on a Stat operation (15).
  22228.  
  22229.     When a program issues a Stat operation (15), Btrieve returns the definition of a file -- the same information passed to Btrieve on the create.  The structure passed to Btrieve for the Stat operation is similar to the structure passed for the Create operation.  Many programmers use the same structure for the Stat as for the Create.
  22230.  
  22231.     If a supplemental index is added, the Stat operation will return information about the supplemental index.  This must be accounted for in the data buffer for the stat call.
  22232.  
  22233.     For example the following structure creates a file with 3 key segments.  If a supplemental index is added with one segment, the stat operation will return 4 key segment definitions.  However, our structure can only accommodate 3. If we set the Data Buffer Length parameter to the Sizeof the FileSpec Structure, a status 22 will result.
  22234.  
  22235.  
  22236.        // BTRIEVE STRUCTURES
  22237.        struct KeySpec
  22238.         {
  22239.           int    KeyPos;
  22240.           int    KeyLen;
  22241.           int    KeyFlags;
  22242.           long    KeyTot;
  22243.           char    KeyType;
  22244.           char    Reserved[5];
  22245.         };
  22246.  
  22247.        struct FileSpec
  22248.          {
  22249.            int    RecLen;
  22250.            int    PageSize;
  22251.            int    IndxCnt;
  22252.            long    no_records;
  22253.            int    FileFlags;
  22254.            char    Reserved[2];
  22255.            int    Allocation;
  22256.            struct KeySpec KeyBuf[3];
  22257.          // make sure this is large enough
  22258.           };
  22259.  
  22260.     To avoid this, just make sure that the file specification structure has enough key segments to handle supplemental indexes that may have been added after the create.
  22261.  
  22262.  
  22263.  
  22264.  
  22265. FYI:    Alternate Collating Sequence with WatCom C
  22266.                                      FYI
  22267.  
  22268. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22269.  
  22270.           TITLE:    Alternate Collating Sequence with WatCom C
  22271.    DOCUMENT ID#:    FYI.A.3905
  22272.            DATE:    14JUN91
  22273.         PRODUCT:    NA
  22274. PRODUCT VERSION:    NA
  22275.      SUPERSEDES:    NA
  22276.  
  22277.         SYMPTOM:    NA
  22278.  
  22279. ISSUE/PROBLEM
  22280.  
  22281.     This FYI shows how to implement an alternate collating sequence in WatCom C.
  22282.  
  22283.     An Alternate Collating Sequence (ACS) is used to redefine the ASCII collating sequence.  An ACS is often used to make upper and lower case values equivalent for sorting purposes (in ASCII, upper case values comes before lower case values).
  22284.  
  22285.     An ACS is defined during the create operation as a table following the key specifications.  The following structure defines the ACS table:
  22286.  
  22287.      struct alt_col_seq_type
  22288.           {
  22289.         char  sign_byte;
  22290.         char  desc[8];
  22291.         char  ACS_table[256];
  22292.           };
  22293.  
  22294.     The standard key specification structure is used:
  22295.  
  22296.      struct KeySpec
  22297.           {
  22298.         int   KeyPos;
  22299.         int   KeyLen;
  22300.         int   KeyFlags;
  22301.         long  KeyTot;
  22302.         char  KeyType;
  22303.         char  Reserved[5];
  22304.           };
  22305.  
  22306.     The file spec structure contains the ACS table structure following the key specifications:
  22307.  
  22308.      struct FileSpec
  22309.           {
  22310.         int   RecLen;
  22311.         int   PageSize;
  22312.         int   IndxCnt;
  22313.         char  NotUsed[4];
  22314.         int   FileFlags;
  22315.         char  Reserved[2];
  22316.         int   Allocation;
  22317.         struct KeySpec KeyBuf[3];
  22318.         struct alt_col_seq_type alt_col_seq;
  22319.           };
  22320.  
  22321.     The create parameters are defined as always:
  22322.  
  22323.       FileBuf.RecLen = sizeof(ACP_Buffer.ACP_Record[0])-2;
  22324.       FileBuf.PageSize = 512;
  22325.       FileBuf.IndxCnt = 2;
  22326.       FileBuf.FileFlags = 0;
  22327.  
  22328.       // SETUP KEY SPECS
  22329.       FileBuf.KeyBuf[0].KeyPos = 1; // KEY 0=By AREA CODE/PREFIX
  22330.       FileBuf.KeyBuf[0].KeyLen = 6;
  22331.       FileBuf.KeyBuf[0].KeyFlags = EXT_TYPE | MOD ;
  22332.       FileBuf.KeyBuf[0].KeyType = BSTRING;
  22333.  
  22334.     The following segmented key uses the ACS.  Notice the SEG flag is set:
  22335.  
  22336.      FileBuf.KeyBuf[1].KeyPos = 28; // KEY 3=By STATE By CITY
  22337.      FileBuf.KeyBuf[1].KeyLen = 3;
  22338.      FileBuf.KeyBuf[1].KeyFlags = EXT_TYPE | DUP | SEQ | SEG;
  22339.      FileBuf.KeyBuf[1].KeyType = BZSTRING;
  22340.  
  22341.      FileBuf.KeyBuf[2].KeyPos = 7;
  22342.      FileBuf.KeyBuf[2].KeyLen = 21;
  22343.      FileBuf.KeyBuf[2].KeyFlags = EXT_TYPE | DUP | SEQ;
  22344.      FileBuf.KeyBuf[2].KeyType = BZSTRING;
  22345.  
  22346.     The ACS table is generated with a FOR loop.  Each byte in the ACS table variable contains the alternate value to use as comparison in collating For example, an 'a' is ASCII 97. When an 'a' is encountered, we want Btrieve to treat it as though it was an 'A' (ASCII 65).  Position 97 of the table contains a 65.
  22347.  
  22348.     With ASCII, subtracting 32 from a lower case value will give the upper case value (97-65 = 32).  In our FOR loop we are only interested in values between 97 and 122 (a to z).  Our table contains the ASCII value except for ASCII values 97 to 122.  These values are replaced with the ASCII value minus 32:
  22349.  
  22350.      // GENERATE ALT COL SEQ
  22351.      // the first byte must contain an AC hex
  22352.      FileBuf.alt_col_seq.sign_byte = 0xAC;
  22353.      // the next 8 bytes contains a descriptor
  22354.      memcpy(&FileBuf.alt_col_seq.desc,"ACStable" , 8);
  22355.      // the for loop creates the ACS hash table
  22356.      for (i = 0; i < 256; i++)
  22357.      {
  22358.        if (i >= 97 && i <= 122)
  22359.          FileBuf.alt_col_seq.ACS_table[i] = i - 32;
  22360.        else
  22361.          FileBuf.alt_col_seq.ACS_table[i] = i;
  22362.      }
  22363.  
  22364.  
  22365.  
  22366.  
  22367. FYI:    NetWork C for NLM's SDKa - SetDirectoryInfo
  22368.                                      FYI
  22369.  
  22370. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22371.  
  22372.           TITLE:    NetWork C for NLM's SDKa - SetDirectoryInfo
  22373.    DOCUMENT ID#:    FYI.A.2615
  22374.            DATE:    14JUN91
  22375.         PRODUCT:    NA
  22376. PRODUCT VERSION:    NA
  22377.      SUPERSEDES:    NA
  22378.  
  22379.         SYMPTOM:    NA
  22380.  
  22381. ISSUE/PROBLEM
  22382.  
  22383.     It has been found that the SetDirectoryInfo API causes the server to abend with a 'Invalid Semaphore passed to Kernel' error, when calling a REMOTE 286 server.
  22384.  
  22385.  
  22386.  
  22387.  
  22388. FYI:    Stored Procedures in XQL/NetWare SQL v2.11 (VAP & NLM)
  22389.                                      FYI
  22390.  
  22391. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22392.  
  22393.           TITLE:    Stored Procedures in XQL/NetWare SQL v2.11 (VAP & NLM)
  22394.    DOCUMENT ID#:    FYI.A.1819
  22395.            DATE:    14JUN91
  22396.         PRODUCT:    NetWare SQL
  22397. PRODUCT VERSION:    2.11
  22398.      SUPERSEDES:    NA
  22399.  
  22400.         SYMPTOM:    NA
  22401.  
  22402. ISSUE/PROBLEM
  22403.  
  22404.     Has anybody had questions about how to nest stored procedures as well as pass parameters to the nested stored procedures?  The two following examples define how this can and cannot be done.
  22405.  
  22406.     Example One:  This example will not return the data being asked for. It will always use the first two values passed in at the CALLER level. This is due to name association between the values internally and the caller's definition of the values.  Caution:  All the internal stored procedures must contain unique variable names.  If they do not it appears that the called procedure will always use the first occurrence of the variable.
  22407.  
  22408.        Step 1:
  22409.          create proc t1 as
  22410.          select name from test where name = @v1 or name = @v2
  22411.  
  22412.        Step 2:
  22413.          create proc t2 as
  22414.          select name from test where name = @v1 or name = @v2
  22415.  
  22416.        Step 3:
  22417.          create proc t3 as
  22418.          select name from test where name = @v1 or name = @v2
  22419.          create proc caller @v1 char(20), @v2 char(20),
  22420.                 @v3 char(20), @v4 char(20),
  22421.                 @v5 char(20), @v6 char(20)
  22422.          as
  22423.          execute t1
  22424.          execute t2
  22425.          execute t3
  22426.  
  22427.        Step 4:
  22428.          execute caller 'Laura' 'Stephen' 'Randy' 'Gayle' 'Laura' 'Brett'
  22429.  
  22430.        Results:
  22431.        -------
  22432.        Results for t1
  22433.          Laura
  22434.          Stephen
  22435.  
  22436.        Results for t2
  22437.          Laura
  22438.          Stephen
  22439.  
  22440.        Results for t3
  22441.          Laura
  22442.          Stephen
  22443.  
  22444.     Example 2:  This is the proper way to nest stored procedures.  Each internal stored procedure has a unique variable name and it is defined at the CALLER level.
  22445.  
  22446.        Step 1:
  22447.          create proc t1 as
  22448.          select name from test where name = @t1v1 or name = @t1v2
  22449.  
  22450.        Step 2:
  22451.          create proc t2 as
  22452.          select name from test where name = @t2v1 or name = @t2v2
  22453.  
  22454.        Step 3:
  22455.          create proc t3 as
  22456.          select name from test where name = @t3v1 or name = @t3v2
  22457.  
  22458.        Step 4:
  22459.          create proc caller @t1v1 char(20), @t1v2 char(20),
  22460.                 @t2v1 char(20), @t2v2 char(20),
  22461.                 @t3v1 char(20), @t3v2 char(20)
  22462.          as
  22463.          execute t1
  22464.          execute t2
  22465.          execute t3
  22466.  
  22467.        Step 5:
  22468.          execute caller 'Laura' 'Stephen' 'Randy' 'Gayle' 'Laura' 'Brett'
  22469.  
  22470.        Results:
  22471.        --------
  22472.        Results for t1:
  22473.          Laura
  22474.          Stephen
  22475.  
  22476.        Results for t2:
  22477.          Randy
  22478.          Gayle
  22479.  
  22480.        Results for t3:
  22481.          Laura
  22482.          Brett
  22483.  
  22484.  
  22485.  
  22486.  
  22487. FYI:    ClearConnectionNumber (C-Interface for DOS v1.2)
  22488.                                      FYI
  22489.  
  22490. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22491.  
  22492.           TITLE:    ClearConnectionNumber (C-Interface for DOS v1.2)
  22493.    DOCUMENT ID#:    FYI.A.3403
  22494.            DATE:    12JUN91
  22495.         PRODUCT:    NA
  22496. PRODUCT VERSION:    NA
  22497.      SUPERSEDES:    NA
  22498.  
  22499.         SYMPTOM:    NA
  22500.  
  22501. ISSUE/PROBLEM
  22502.  
  22503.     In the current documentation for NetWare C Interface for DOS, the ClearConnectionNumber function states that it is a NetWare 286 specific call.  This is incorrect, the ClearConnectionNumber call will work on any NetWare 2.x or 3.x server.
  22504.  
  22505.  
  22506.  
  22507.  
  22508. FYI:    GetDirEntry (NetWare C Interface - DOS v1.20)
  22509.                                      FYI
  22510.  
  22511. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22512.  
  22513.           TITLE:    GetDirEntry (NetWare C Interface - DOS v1.20)
  22514.    DOCUMENT ID#:    FYI.A.3323
  22515.            DATE:    12JUN91
  22516.         PRODUCT:    NA
  22517. PRODUCT VERSION:    NA
  22518.      SUPERSEDES:    NA
  22519.  
  22520.         SYMPTOM:    NA
  22521.  
  22522. ISSUE/PROBLEM
  22523.  
  22524.     The GetDirEntry function in the NetWare C Interface - DOS, version 1.20, returns incorrect information for the inheritedRightsMask under NetWare 3.x.  The inheritedRightsMask is obtained from the reply buffer offset 98 instead of the proper offset 102.  The line that needs changing in GETDIREN.C is shown below:
  22525.  
  22526.      OLD  --->  dirEntry->inheritedRightsMask = *( (WORD *)&replyBuff[98] );
  22527.  
  22528.      NEW  --->  dirEntry->inheritedRightsMask = *( (WORD *)&replyBuff[102] );
  22529.  
  22530.  
  22531.  
  22532.  
  22533. FYI:    RespondToLocalQuery (NetWare C Interface - DOS v1.20)
  22534.                                      FYI
  22535.  
  22536. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22537.  
  22538.           TITLE:    RespondToLocalQuery (NetWare C Interface - DOS v1.20)
  22539.    DOCUMENT ID#:    FYI.A.3322
  22540.            DATE:    12JUN91
  22541.         PRODUCT:    NA
  22542. PRODUCT VERSION:    NA
  22543.      SUPERSEDES:    NA
  22544.  
  22545.         SYMPTOM:    NA
  22546.  
  22547. ISSUE/PROBLEM
  22548.  
  22549.     The Advertise function in SAP Services of the NetWare C Interface - DOS, version 1.20, will not respond to local queries properly if a server of the same type is on the internet, or if the Advertising station itself is very fast.
  22550.  
  22551.     Currently the RespondToLocalQuery code does not check for only query types of 1 or 3.  Due to this fact, it will respond to query types of 2, which are query responses, possibly it's own.  When this happens the advertising servers respond to each other's query responses in an endless loop, or in the case of a fast server it can respond to itself.
  22552.  
  22553.     The following code changes, in the RespondToLocalQuery function in the ADVERTIS.c source, should resolve the problem:
  22554.  
  22555.       OLD
  22556.         if(querySAP.serverType == thisServer)
  22557.            {
  22558.  
  22559.       NEW
  22560.         define a local variable
  22561.  
  22562.         WORD queryType;
  22563.  
  22564.         queryType=IntSwap(querySap.queryType);
  22565.         if( (querySAP.serverType == thisServer) &&
  22566.             ((queryType == 1) || queryType == 3))
  22567.             {
  22568.  
  22569.  
  22570.  
  22571.  
  22572. FYI:    GetSpecificServerInfo (NetWare C Interface - DOS v1.20)
  22573.                                      FYI
  22574.  
  22575. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22576.  
  22577.           TITLE:    GetSpecificServerInfo (NetWare C Interface - DOS v1.20)
  22578.    DOCUMENT ID#:    FYI.A.3321
  22579.            DATE:    12JUN91
  22580.         PRODUCT:    NA
  22581. PRODUCT VERSION:    NA
  22582.      SUPERSEDES:    NA
  22583.  
  22584.         SYMPTOM:    NA
  22585.  
  22586. ISSUE/PROBLEM
  22587.  
  22588.     The GetSpecificServerInfo function, in the 1.20 version of the NetWare C Interface - DOS, fails if issued as documented.  The serverType in the serverInfo structure passed as input to the call needs to be IntSwapped before the call is made.
  22589.  
  22590.     The same holds true when the serverInfo structure is returned from the GetSpecificServerInfo call.  The serverType field needs to be IntSwapped before displaying/using the value returned.
  22591.  
  22592.  
  22593.  
  22594.  
  22595. FYI:    Btrieve / Opening files in read-only directories
  22596.                                      FYI
  22597.  
  22598. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22599.  
  22600.           TITLE:    Btrieve / Opening files in read-only directories
  22601.    DOCUMENT ID#:    FYI.A.2305
  22602.            DATE:    12JUN91
  22603.         PRODUCT:    Btrieve
  22604. PRODUCT VERSION:    NA
  22605.      SUPERSEDES:    NA
  22606.  
  22607.         SYMPTOM:    NA
  22608.  
  22609. ISSUE/PROBLEM
  22610.  
  22611.     Can you open a file in read-only mode if the file is in a directory where you only have read rights? The answer is NOT consistent!!
  22612.  
  22613.     Please also note that in NetWare 2.x, read-only directories are treated differently than directories where you have read and OPEN rights!
  22614.  
  22615.          ***************************************
  22616.          Btrieve VAP 5.15 patched to #16
  22617.          ***************************************
  22618.         NW 2.x
  22619.         Dir where you have Read & Scan rights
  22620.  
  22621.         open mode    status      -2 (RO)    94 (permission error)  0 (norm)    94
  22622.           --------------------------------------
  22623.         NW 2.x
  22624.         Dir where you have Read, Scan AND Open rights
  22625.  
  22626.         open mode    status      -2        0       0        94
  22627.  
  22628.          ***************************************
  22629.          Btrieve NLM patched to #16
  22630.          ***************************************
  22631.         NW 3.x
  22632.         Dir where you have Read & File scan rights
  22633.  
  22634.         open mode    status     -2        0      0        94
  22635.  
  22636.          **********************************************
  22637.          Btrieve for DOS Networks v5.10a patched to #95
  22638.          **********************************************
  22639.         NW 2.x
  22640.         Dir where you have Read & Scan rights
  22641.  
  22642.         open mode    status     -2        12      0        12
  22643.           -----------------------------------------------
  22644.         NW 2.x
  22645.         Dir where you have Read, Scan AND Open rights
  22646.  
  22647.         open mode    status     -2        0      0        94
  22648.           -----------------------------------------------
  22649.         NW 3.x
  22650.         Dir where you have Read & File scan rights
  22651.  
  22652.         open mode    status     -2        0      0        94
  22653.  
  22654.  
  22655.  
  22656.  
  22657. FYI:    Max # of open files with Microsoft C 6.0 and Btrieve v5.10
  22658.                                      FYI
  22659.  
  22660. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22661.  
  22662.           TITLE:    Max # of open files with Microsoft C 6.0 and Btrieve v5.10
  22663.    DOCUMENT ID#:    FYI.A.2014
  22664.            DATE:    12JUN91
  22665.         PRODUCT:    Btrieve
  22666. PRODUCT VERSION:    5.10
  22667.      SUPERSEDES:    NA
  22668.  
  22669.         SYMPTOM:    NA
  22670.  
  22671. ISSUE/PROBLEM
  22672.  
  22673.     This FYI only pertains to programs compiled with Microsoft C version 6.0.
  22674.  
  22675.     The Btrieve for OS/2 documentation (page 3-2) states that "If the total number of handles your application requires is greater than 20, use the OS/2 DOSSETMAXFH() function call to increase the number of file handles OS/2 assigns to your application."
  22676.  
  22677.     In reality the Microsoft C compiler by default allows 20 open  files per process for single thread processes and 40 when  compiling using the multithread or DLL libraries.  When using the multithread or DLL libraries, the DOSSETMAXFH() function can be used to increase the number of file handles from 40 to a programmer specified value.  When using the single thread libraries, to increase the file handles to greater than 20, the compiler startup code has to be modified, recompiled and  linked with your program.  This holds true for DOS and Windows  as well as OS/2 programs compiled with Microsoft C.
  22678.  
  22679.     Below I have included a section from the README.DOC that is shipped with Microsoft C 6.0 that explains how to modify the startup code.
  22680.  
  22681.     Increasing the Maximum Number of Open Files
  22682.  
  22683.     C 6.0 allows you to increase the maximum number of files that may be open for I/O (the default number is 20). To use this feature, you must be running either OS/2 or DOS version 3.3 or later. Use the procedures described in the remainder of this section to increase the maximum number of open files.
  22684.  
  22685.     Increasing File Handles
  22686.  
  22687.     To increase the number of file handles, edit the start-up source file CRT0DAT.ASM, which is provided in this release. Change the line
  22688.           _NFILE_ = 20
  22689.     so that _NFILE_ is set to the desired maximum. For example, to increase the maximum number of available file handles to 40, change the line as shown here:
  22690.  
  22691.           _NFILE_ = 40
  22692.  
  22693.      NOTE:    Increasing the number of file handles allows you to use low-level I/O functions, such as open and read, with more files. However, it does not affect the number of stream-level I/O files (that is, the number of FILE *  streams).
  22694.  
  22695.     Increasing Streams
  22696.  
  22697.     To increase the number of streams, edit the source file _FILE.C. Change the line
  22698.  
  22699.         #define _NFILE_ 20 to set _NFILE_ to the desired maximum.
  22700.  
  22701.     For example, to allow a maximum of 40 streams, change the line as shown here:
  22702.  
  22703.         #define _NFILE_ 40
  22704.  
  22705.     Increasing the number of streams allows you to use stream-level I/O functions, such as fopen and fread, with more files.
  22706.  
  22707.     NOTE:    The number of low-level file handles must be greater than or equal to the number of stream-level files. Thus, if you increase the value of _NFILE_ in the module _FILE.C, you must also increase the value of _NFILE_ in the module CRT0DAT.ASM.
  22708.  
  22709.     Increasing the System Limit
  22710.  
  22711.     To use more than 20 files at a time, you must increase the file limit imposed on your process by the operating system.
  22712.  
  22713.     To increase the system-wide limit, increase the number of files available on your system as a whole by editing your system configuration file (CONFIG.SYS). For example, to allow 100 open files at a time on your system, put this statement in the configuration file:
  22714.  
  22715.     FILES=120
  22716.  
  22717.     To increase the process-by-process limit, you must also increase the number of files the operating system makes available to your particular process. To do this, edit CRT0DAT.ASM and enable the commented-out code that is preceded by the appropriate description.
  22718.  
  22719.     In the DOS version of CRT0DAT.ASM, for example, the commented-out code appears as shown here:
  22720.  
  22721.      ;    mov    ah,67h
  22722.      ;    mov    bx,_NFILE_
  22723.      ;    callos
  22724.  
  22725.     In the OS/2 version of CRT0DAT.ASM, the code appears as a call to DOSSETMAXFH. Under OS/2, you must also enable the 'extrn DOSSETMAXFH:far' declaration that appears near the beginning of the file.
  22726.  
  22727.     In either case, remove the semicolon (;) comment characters.
  22728.  
  22729.     NOTE:    Under OS/2, you must take into account the fact that each process has the potential to "own" open files. When planning  how many open files to allow on a system-wide basis, take this into account.
  22730.  
  22731.     Using the Modified Startup Files
  22732.  
  22733.     After you modify CRT0DAT.ASM and/or _FILE.C, assemble or compile the file(s). The start-up MAKEFILE contains sample command lines to perform these jobs. Note that the object files will differ for OS/2 and DOS.
  22734.  
  22735.     To use the new object files, either explicitly link your program with the new CRT0DAT.OBJ and _FILE.OBJ file(s), or replace the CRT0DAT.OBJ and _FILE.OBJ object(s) in the appropriate model of the C run-time library.
  22736.  
  22737.     Multithread (MT) and Dynamic-Link Library (DLL) Libraries
  22738.  
  22739.     By default, the C 6.0 MT and DLL libraries support 40 file handles and streams instead of 20, which is the single thread library default.
  22740.  
  22741.     To increase the number of file handles (low-level I/O), simply issue a DOSSETMAXFH call from within your program. This increases the open file limit for the calling process.
  22742.  
  22743.     To increase the allowable number of open streams, first make sure that the number of file handles is greater than or equal to the number    of streams you want. Then rebuild module _FILE.C with the desired  _NFILE setting (as described under the single thread description).  Since the MT and DLL libraries are large model, be sure to compile  _FILE.C with the /AL switch.
  22744.  
  22745.  
  22746.  
  22747.  
  22748. FYI:    XQL v2.11 Turbo Pascal Interface
  22749.                                      FYI
  22750.  
  22751. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22752.  
  22753.           TITLE:    XQL v2.11 Turbo Pascal Interface
  22754.    DOCUMENT ID#:    FYI.A.1724
  22755.            DATE:    12JUN91
  22756.         PRODUCT:    XQL
  22757. PRODUCT VERSION:    2.11
  22758.      SUPERSEDES:    NA
  22759.  
  22760.         SYMPTOM:    NA
  22761.  
  22762. ISSUE/PROBLEM
  22763.  
  22764.     There is a problem with the definition of the xDDCreate primitive function in the Turbo Pascal interface that ships with XQL v2.11.  The result is a status 24 (Page Size Error) when utilizing the optional bCreateParmsBuf parameter to specify Btrieve data file creation parameters.  The interface can be corrected by making the following changes to the file XQLPDICT.PAS  (18,132 bytes  08-24-90  9:07am):
  22765.  
  22766.      Line #    Old line                            New Line
  22767.      ------    ------------------------------   -----------------------------
  22768.        47     VAR CREPARMS) : INTEGER                VAR CRPARMS) : INTEGER
  22769.       219     VAR CREPARMS)                        VAR CRPARMS)
  22770.       249     creparms.Seg := Seg(CREPARMS);   creparms.Seg := Seg(CRPARMS);
  22771.       250     creparms.Ofs := Ofs(CREPARMS);   creparms.Ofs := Ofs(CRPARMS);
  22772.  
  22773.     Basically, the interface references two different variables that are spelled the same, but are of different case.  Pascal is case-insensitive in regards to variable names, so changing the name of CREPARMS to CRPARMS in the xDDCreate function as described above will solve the problem.
  22774.  
  22775.  
  22776.  
  22777.  
  22778. FYI:    SetNetWareErrorMode  with MS BASIC
  22779.                                      FYI
  22780.  
  22781. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22782.  
  22783.           TITLE:    SetNetWareErrorMode  with MS BASIC
  22784.    DOCUMENT ID#:    FYI.A.1513
  22785.            DATE:    12JUN91
  22786.         PRODUCT:    NA
  22787. PRODUCT VERSION:    NA
  22788.      SUPERSEDES:    NA
  22789.  
  22790.         SYMPTOM:    NA
  22791.  
  22792. ISSUE/PROBLEM
  22793.  
  22794.     I recently had a customer trying to use the SetNetWareErrorMode API call through a BASIC application.  However, no matter what he set it to, the application would always terminate with a BASIC error code rather than the ABORT/RETRY message.   SetNetWareErrorMode does not work correctly because MS BASIC is taking over the critical error handler and returning the appropriate BASIC error code whenever such an error occurs.  The NetWare shell is not able to regain control when a critical error is encountered, therefore, the SetNetWareErrorMode API call has no affect when running under MS BASIC.
  22795.  
  22796.  
  22797.  
  22798.  
  22799. FYI:    Btrieve 5.10 NLM and Unknown Bindery Object Type
  22800.                                      FYI
  22801.  
  22802. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  22803.  
  22804.           TITLE:    Btrieve 5.10 NLM and Unknown Bindery Object Type
  22805.     DOCUMENT ID:    FYI.A.3401
  22806.            DATE:    07JUN91
  22807.         PRODUCT:    NetWare Btrieve
  22808. PRODUCT VERSION:    NA
  22809.      SUPERSEDES:    NA
  22810.  
  22811.         SYMPTOM:    NA
  22812.  
  22813. ISSUE/PROBLEM
  22814.  
  22815.     Ever have someone run BSETUP.EXE on NetWare 3.x? If they select install, it will create a Bindery Object of BTRIEVE_SERVER and leave it there. This Bindery Object however can be deleted with the C Int or System call DeleteBinderyObject. Also don't rely upon the SECURITY.EXE program to display a correct Object Type. It shows as "BTRIEVE_SERVER unknown type 19200" however it's really type 75 (h4b) and must be reference that way.
  22816.  
  22817.  
  22818.  
  22819.  
  22820. FYI:    creat() Bug in CLib v3.11 on NetWare v3.11
  22821.                                      FYI
  22822.  
  22823. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22824.  
  22825.           TITLE:    creat() Bug in CLib v3.11 on NetWare v3.11
  22826.    DOCUMENT ID#:    FYI.A.3114
  22827.            DATE:    07JUN91
  22828.         PRODUCT:    NA
  22829. PRODUCT VERSION:    NA
  22830.      SUPERSEDES:    NA
  22831.  
  22832.         SYMPTOM:    NA
  22833.  
  22834. ISSUE/PROBLEM
  22835.  
  22836.     The file access mode on the creat() API is different depending on whether the file exists.  If a file exists, the mode is O_WRONLY.  If the file doesn't exist, the mode is O_RDWR.  I'm not sure which way is correct, so I've turned in a bug, #1065.  As an aside, if you use open(), with O_CREAT | O_TRUNC | O_RDWR, you will achieve a consistent behavior...
  22837.  
  22838.  
  22839.  
  22840.  
  22841. FYI:    GetBinderyObjectDiskSpaceLeft Bug in CLib v3.11
  22842.                                      FYI
  22843.  
  22844. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22845.  
  22846.           TITLE:    GetBinderyObjectDiskSpaceLeft Bug in CLib v3.11
  22847.    DOCUMENT ID#:    FYI.A.3113
  22848.            DATE:    07JUN91
  22849.         PRODUCT:    NA
  22850. PRODUCT VERSION:    NA
  22851.      SUPERSEDES:    NA
  22852.  
  22853.         SYMPTOM:    NA
  22854.  
  22855. ISSUE/PROBLEM
  22856.  
  22857.     GetBinderyObjectDiskSpaceLeft() returns invalid numbers for both v3.1 and v3.11 of NetWare and CLIB.  On 3.11, you can workaround by doing the following APIs:
  22858.  
  22859.         GetMaximumUserSpaceRestriction() - GetDiskSpaceUsedByObject()
  22860.  
  22861.  
  22862.  
  22863.  
  22864. FYI:    C Int for DOS v1.2
  22865.                                      FYI
  22866.  
  22867. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22868.  
  22869.           TITLE:    C Int for DOS v1.2
  22870.    DOCUMENT ID#:    FYI.A.2901
  22871.            DATE:    07JUN91
  22872.         PRODUCT:    NA
  22873. PRODUCT VERSION:    NA
  22874.      SUPERSEDES:    NA
  22875.  
  22876.         SYMPTOM:    NA
  22877.  
  22878. ISSUE/PROBLEM
  22879.  
  22880.     At the C/DOS/CLASS, we were running on NetWare 3.10, I have discovered the following:
  22881.  
  22882.      AddTrusteeToDirectory(BYTE directoryHandle,char *directoryPath, long
  22883.                             trusteeObjectID,BYTE trusteeRightsMask);
  22884.  
  22885.     The above function will return 0 (0x00) SUCCESSFUL, in the NetWare 386 environment, however, when you go to check the results with SYSCON, you will find that the function did not add your user to the directory. Why don't we send return values that is not equal to zero, if the function did not accomplish its task?
  22886.  
  22887.     On the 386 NetWare Environment you must use SetTrustee function to add certain user to a directory.
  22888.  
  22889.  
  22890.  
  22891.  
  22892. FYI:    NWC4DOS & TC PRJ Files
  22893.                                      FYI
  22894.  
  22895. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22896.  
  22897.           TITLE:    NWC4DOS & TC PRJ Files
  22898.    DOCUMENT ID#:    FYI.A.1309
  22899.            DATE:    07JUN91
  22900.         PRODUCT:    NA
  22901. PRODUCT VERSION:    NA
  22902.      SUPERSEDES:    NA
  22903.  
  22904.         SYMPTOM:    NA
  22905.  
  22906. ISSUE/PROBLEM
  22907.  
  22908.     FYI - Compiling w/i the TC Environ. using NW C Interface for DOS
  22909.  
  22910.     Compiling and linking an application within the Turbo C Environment  using the NetWare C Interface for DOS (NetWare APIs) can cause some problems to new users of the NetWare APIs.  The most common problem new users have is the linking error 'Undefined Symbol' returned for every NetWare API function call made.  The most common reason for this problem has to do with the absence of a project file.  A project file is used by the environments 'Compile - Make EXE' option as a "recipe" for what is to go into an EXE -- source files (.C), object files (.OBJs) and libraries (.LIBs).  A project file must be created before an application  using the NetWare APIs will resolve these symbols.  For example, MYPROG.C  uses the NetWare Communication Services APIs.  The application requires  a preassembled OBJ to be included.  Furthermore, the application will be  compiled and linked in small model.
  22911.  
  22912.     Under Turbo C 2.0, a project file is created using either its built-in editor or another ASCII editor.  The project file created for MYPROG.C has the name MYPROG.PRJ and contains the following.
  22913.  
  22914.      MYPROG.C
  22915.      OTHER.OBJ
  22916.      SNIT.LIB
  22917.  
  22918.     To compile and link this application within the environment, the 'Project' option would be chosen from the menu bar and the name of the project file entered.  Next, the 'Compile' option would be chosen and, from its menu, the 'Make EXE' option picked.  If the compile and link are successful, MYPROG.EXE will be created.
  22919.  
  22920.     Under Turbo C++ 2.0, the project file is created from within the environment. Choose the 'Project' option from the menu bar.  From this point, assorted prompts guide you to creating a project file.  Note that project files created under Turbo C 2.0 are incompatible with Turbo C++ 2.0.  Turbo C++ comes with a convert utility, however, which will rebuild your original project files to conform to the C++ specifications.
  22921.  
  22922.  
  22923.  
  22924.  
  22925. FYI:    Completion Code 156
  22926.                                      FYI
  22927.  
  22928. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22929.  
  22930.           TITLE:    Completion Code 156
  22931.    DOCUMENT ID#:    FYI.A.3402
  22932.            DATE:    04JUN91
  22933.         PRODUCT:    NA
  22934. PRODUCT VERSION:    NA
  22935.      SUPERSEDES:    NA
  22936.  
  22937.         SYMPTOM:    NA
  22938.  
  22939. ISSUE/PROBLEM
  22940.  
  22941.     If when you are accessing queues no matter what type, you receive a status 156 (Invalid_Path), chances are the queue's directory is missing from SYS:System. Under this directory is a subdirectory named to match the queue's object ID with a .QDR extension. This is where the job files reside.
  22942.  
  22943.     Look for this when sites go from NetWare v2.xx to v3.xx.
  22944.  
  22945.  
  22946.  
  22947.  
  22948. FYI:    MATHLIB vs MATHLIBC NLM's / NetWare SQL v2.11 NLM
  22949.                                      FYI
  22950.  
  22951. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  22952.  
  22953.           TITLE:    MATHLIB vs MATHLIBC NLM's / NetWare SQL v2.11 NLM
  22954.     DOCUMENT ID:    FYI.A.2502
  22955.            DATE:    04JUN91
  22956.         PRODUCT:    NetWare SQL
  22957. PRODUCT VERSION:    2.11
  22958.      SUPERSEDES:    NA
  22959.  
  22960.         SYMPTOM:    NA
  22961.  
  22962. ISSUE/PROBLEM
  22963.  
  22964.     MATHLIB and MATHLIBC NLM's are distributed with NetWare 3.x.  What is the difference between these two NLMs?
  22965.  
  22966.     MATHLIBC.NLM is intended for servers without math coprocessors. It contains the floating point math routines required for emulation.
  22967.  
  22968.     MATHLIB.NLM is intended for servers with math coprocessors. It contains the 80387 instructions for floating point calculations.
  22969.  
  22970.     Yes, the names appear to be counterintuitive:  you can remember which is which by remembering that the added "c" corresponds to the added routines to emulate the math coprocessor.
  22971.  
  22972.  
  22973.  
  22974.  
  22975. FYI:    CINT DOS v1.2, VAPs and the 'Ö'.
  22976.                                      FYI
  22977.  
  22978. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  22979.  
  22980.           TITLE:    CINT DOS v1.2, VAPs and the 'Ö'.
  22981.    DOCUMENT ID#:    FYI.A.3112
  22982.            DATE:    03JUN91
  22983.         PRODUCT:    NA
  22984. PRODUCT VERSION:    NA
  22985.      SUPERSEDES:    NA
  22986.  
  22987.         SYMPTOM:    NA
  22988.  
  22989. ISSUE/PROBLEM
  22990.  
  22991.     If you try to open or get file information on a filename containing some special characters, it will fail from a VAP.  We tried the 'Ö', there may be others as well.  The version of NetWare doesn't seem to matter, as we reproduced on a Bridge that was logging in to remote servers.
  22992.  
  22993.  
  22994.  
  22995.  
  22996. FYI:    BROLLFWD's /D Parameter (Btrieve v5.15)
  22997.                                      FYI
  22998.  
  22999. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23000.  
  23001.           TITLE:    BROLLFWD's /D Parameter (Btrieve v5.15)
  23002.     DOCUMENT ID:    FYI.A.1108
  23003.            DATE:    03JUN91
  23004.         PRODUCT:    Btrieve
  23005. PRODUCT VERSION:    5.15)
  23006.      SUPERSEDES:    NA
  23007.  
  23008.         SYMPTOM:    NA
  23009.  
  23010. ISSUE/PROBLEM
  23011.  
  23012.     With the release of Btrieve NLM, VAP, and OS/2 v5.15, a /D parameter has been added to BROLLFWD.  The /D parameter has only been documented in the Btrieve for OS/2 IOM, July 1990 Edition.  The NLM and VAP IOM's shipped with the v5.15 release have not been updated to include information about this additional parameter (NLM - January 1991 Edition, and VAP - December 1990 Edition).  From the OS/2 Btrieve IOM, here is a description of the purpose of the /D parameter and its usage.
  23013.  
  23014.     'The /D parameter specifies the data buffer size that BROLLFWD will allocate for Btrieve operations.  The size is given in kilobytes.  The default size is 8KB.  If you have record sizes over 8KB, you should round your largest record size up to a multiple of 8KB and specify that size for this option.  For example, /D:32.'
  23015.  
  23016.     There should be a change made to the documentation to reflect the fact that the number specified with the /D can be based on 1K increments, rather than on 8K increments.  Also, the minimum for this parameter should be 1K and the maximum should be 64K.
  23017.  
  23018.     This BROLLFWD parameter first appeared with the v5.15 release of the Btrieve NLM and VAP.  It also first came out with the v5.10 release of Btrieve for OS/2.  Btrieve for DOS, currently on the v5.10 release, does not include the /D parameter.
  23019.  
  23020.  
  23021.  
  23022.  
  23023. FYI:    NetWare v3.11 upgrade and Btrieve v5.15 NLM
  23024.                                      FYI
  23025.  
  23026. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23027.  
  23028.           TITLE:    NetWare v3.11 upgrade and Btrieve v5.15 NLM
  23029.     DOCUMENT ID:    FYI.A.1008
  23030.            DATE:    03JUN91
  23031.         PRODUCT:    NetWare Btrieve
  23032. PRODUCT VERSION:    5.15
  23033.      SUPERSEDES:    NA
  23034.  
  23035.         SYMPTOM:    NA
  23036.  
  23037. ISSUE/PROBLEM
  23038.  
  23039.     If you speak with anyone who is getting the error....
  23040.  
  23041.         "Unable to open Btrieve transaction file"
  23042.  
  23043.     This may occur when they attempt to load the new BTRIEVE.NLM v5.15 with BSTART.NCF and they have just installed the upgrade to NetWare v3.11 from v3.10a.  According to LANSWER, running the upgrade from v3.10a to v3.11 shouldn't cause this to occur.  However, it could be related to an unusual disk driver.
  23044.  
  23045.     The fix is simple:  have them check the file flags on the BTRIEVE.TRN file in the SYSTEM directory.  They may find that they are set to RWTDR, which stands for Read, Write, Transactional, Delete Inhibit, and Rename Inhibit.  The file should be flagged Read, Write, Transactional (RWT).  Once the flags are set properly then the BSTART.NCF file will run fine and the NLMs will load.
  23046.  
  23047.  
  23048.  
  23049.  
  23050. FYI:    Corrupted Btrieve v5.x files and Arcnet
  23051.                                      FYI
  23052.  
  23053. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23054.  
  23055.           TITLE:    Corrupted Btrieve v5.x files and Arcnet
  23056.     DOCUMENT ID:    FYI.A.1007
  23057.            DATE:    03JUN91
  23058.         PRODUCT:    Btrieve
  23059. PRODUCT VERSION:    5.X
  23060.      SUPERSEDES:    NA
  23061.  
  23062.         SYMPTOM:    NA
  23063.  
  23064. ISSUE/PROBLEM
  23065.  
  23066.     This is for developers who are running in an Arcnet environment and complain about their Btrieve data being corrupted.
  23067.  
  23068.     Have them check to see if they are using the SMC Arcnet 16 Bit card, model #PC500FS.  It does cause the data to become corrupted.  The Btrieve file access paths are all ok but, the data itself is bogus/corrupted.  The SMC Arcnet 130 8 bit card works fine. This is a Novell certified board.  LANSWER is looking into this.  There are no Btrieve non-zero status codes returned.  You will notice your data is not correct when accessing the records.
  23069.  
  23070.  
  23071.  
  23072.  
  23073. FYI:    LoginToFileServer Problem in CLib v3.11
  23074.                                      FYI
  23075.  
  23076. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23077.  
  23078.           TITLE:    LoginToFileServer Problem in CLib v3.11
  23079.    DOCUMENT ID#:    FYI.A.3111
  23080.            DATE:    01JUN91
  23081.         PRODUCT:    NA
  23082. PRODUCT VERSION:    NA
  23083.      SUPERSEDES:    NA
  23084.  
  23085.         SYMPTOM:    NA
  23086.  
  23087. ISSUE/PROBLEM
  23088.  
  23089.     On NetWare v3.11, if the 'REPLY TO GET NEAREST SERVER' option is set to off, an attempted LoginToFileServer() to any remote server will fail in your NLM. We don't know of any workaround, other than to set that option back on.
  23090.  
  23091.  
  23092.  
  23093.  
  23094. FYI:    SetEntry - NSType
  23095.                                      FYI
  23096.  
  23097. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23098.  
  23099.           TITLE:    SetEntry - NSType
  23100.    DOCUMENT ID#:    FYI.A.3320
  23101.            DATE:    31MAY91
  23102.         PRODUCT:    NA
  23103. PRODUCT VERSION:    NA
  23104.      SUPERSEDES:    NA
  23105.  
  23106.         SYMPTOM:    NA
  23107.  
  23108. ISSUE/PROBLEM
  23109.  
  23110.     This is a follow-up to my previous FYI on this issue for the NetWare C Interface - DOS, version 1.20.  The NSType field defines which name space you are setting with the SetEntry function.  Currently the NFS (UNIX), FTAM (OSI) and HPFS (OS/2) name spaces, available with NetWare 3.11, are NOT supported.  This means that they cannot be obtained, or set, from a client process.  CLIB does support these name spaces, so a backup software developer writing an NLM will be able to get/set the information for the new name spaces.
  23111.  
  23112.  
  23113.  
  23114.  
  23115. FYI:    Windows SDK 1.2.1 - and Communications
  23116.                                      FYI
  23117.  
  23118. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23119.  
  23120.           TITLE:    Windows SDK 1.2.1 - and Communications
  23121.    DOCUMENT ID#:    FYI.A.2614
  23122.            DATE:    31MAY91
  23123.         PRODUCT:    NA
  23124. PRODUCT VERSION:    NA
  23125.      SUPERSEDES:    NA
  23126.  
  23127.         SYMPTOM:    NA
  23128.  
  23129. ISSUE/PROBLEM
  23130.  
  23131.     Just a fair reminder that when carrying out IPX/SPX communications, each IPXInitialize, & SPXInitialize should have a matching IPXSPXDeinit call for each IPXTaskID.  What this does it release resources allocated at the NWIPXSPX.DLL level for each IPXTaskID.
  23132.  
  23133.  
  23134.  
  23135.  
  23136. FYI:    Another Shipping NetWare SQL Front End
  23137.                                      FYI
  23138.  
  23139. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23140.  
  23141.           TITLE:    Another Shipping NetWare SQL Front End
  23142.     DOCUMENT ID:    FYI.A.8101
  23143.            DATE:    30MAY91
  23144.         PRODUCT:    NetWare SQL
  23145. PRODUCT VERSION:    NA
  23146.      SUPERSEDES:    NA
  23147.  
  23148.         SYMPTOM:    NA
  23149.  
  23150. ISSUE/PROBLEM
  23151.  
  23152.     Just to keep everyone up to date on shipping NetWare SQL front ends, here is a new one:
  23153.  
  23154.      Logic Works, Inc.
  23155.      601 Ewing Street
  23156.      Suite B7
  23157.      Princeton, NJ  08540
  23158.      609-683-0054
  23159.      609-924-0029 FAX
  23160.  
  23161.      Product Name: ERwin/ERX
  23162.  
  23163.     Description:     ERwin is an entity relationship modeling tool that helps you build a logical model of your database to ensure efficiency and performance.  Supports both SQL code generation and reverse engineering for NetWare SQL databases.
  23164.  
  23165.     Environments: Windows
  23166.  
  23167.     They are going to start shipping this product on Monday of next week.
  23168.  
  23169.     If you have any additional questions or would like to see a demo, please let me know.
  23170.  
  23171.  
  23172.  
  23173.  
  23174. FYI:    Network C for NLMs Release A Linker User's Manual
  23175.                                      FYI
  23176.  
  23177. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23178.  
  23179.           TITLE:    Network C for NLMs Release A Linker User's Manual
  23180.    DOCUMENT ID#:    FYI.A.3804
  23181.            DATE:    30MAY91
  23182.         PRODUCT:    NA
  23183. PRODUCT VERSION:    NA
  23184.      SUPERSEDES:    NA
  23185.  
  23186.         SYMPTOM:    NA
  23187.  
  23188. ISSUE/PROBLEM
  23189.  
  23190.     Documentation Error       Pg 3-31
  23191.  
  23192.     The Version Directive has not been defined correctly. It mentions that the major_version should be greater than or equal to 100, and the minor_ version should be in the range of 27 to 99. That is not true. These values are user defined. Also the syntax of this option has not been mentioned correctly. The correct syntax is as follows:
  23193.  
  23194.     OPTION VERSION = major_version.minor_version [.revision]
  23195.  
  23196.  
  23197.  
  23198.  
  23199. FYI:    GetVolumeStatistics bug in CLIB v3.11
  23200.                                      FYI
  23201.  
  23202. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23203.  
  23204.           TITLE:    GetVolumeStatistics bug in CLIB v3.11
  23205.    DOCUMENT ID#:    FYI.A.3110
  23206.            DATE:    30MAY91
  23207.         PRODUCT:    NA
  23208. PRODUCT VERSION:    NA
  23209.      SUPERSEDES:    NA
  23210.  
  23211.         SYMPTOM:    NA
  23212.  
  23213. ISSUE/PROBLEM
  23214.  
  23215.     GetVolumeStatistics() is truncating the availableBlocks field to a WORD.  If you have a volume with more than 64K available blocks, the information returned will be incorrect.  This is applicable to NetWare v3.11 only.
  23216.  
  23217.  
  23218.  
  23219.  
  23220. FYI:    Windows SDK 1.2.x and the SPX Completion Codes
  23221.                                      FYI
  23222.  
  23223. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23224.  
  23225.           TITLE:    Windows SDK 1.2.x and the SPX Completion Codes
  23226.    DOCUMENT ID#:    FYI.A.2613
  23227.            DATE:    30MAY91
  23228.         PRODUCT:    NA
  23229. PRODUCT VERSION:    NA
  23230.      SUPERSEDES:    NA
  23231.  
  23232.         SYMPTOM:    NA
  23233.  
  23234. ISSUE/PROBLEM
  23235.  
  23236.     Here are two completion codes that may be of interest to anybody doing SPX communications in Windows.
  23237.  
  23238.      0xF1 - incorrectly initializes IPX.
  23239.      0xF3 - not free ECB's available in low memory (i.e. under the NWIPXSPX.DLL control).
  23240.  
  23241.  
  23242.  
  23243.  
  23244. FYI:    SetEntry - NSType Field
  23245.                                      FYI
  23246.  
  23247. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23248.  
  23249.           TITLE:    SetEntry - NSType Field
  23250.    DOCUMENT ID#:    FYI.A.3319
  23251.            DATE:    29MAY91
  23252.         PRODUCT:    NA
  23253. PRODUCT VERSION:    NA
  23254.      SUPERSEDES:    NA
  23255.  
  23256.         SYMPTOM:    NA
  23257.  
  23258. ISSUE/PROBLEM
  23259.  
  23260.     The SetEntry function in the NetWare C Interface - DOS can return an undocumented error status of 198.  This indicates an INVALID_NAME_SPACE. This usually means that you have not initialized the NSType field in the NWFILE_ENTRY structure.  At this time the valid entries in this field are 0 - DOS, 1 - Macintosh.
  23261.  
  23262.  
  23263.  
  23264.  
  23265. FYI:    BSPXCOM - Bad connection ID
  23266.                                      FYI
  23267.  
  23268. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23269.  
  23270.           TITLE:    BSPXCOM - Bad connection ID
  23271.     DOCUMENT ID:    FYI.A.2011
  23272.            DATE:    29MAY91
  23273.         PRODUCT:    NA
  23274. PRODUCT VERSION:    NA
  23275.      SUPERSEDES:    NA
  23276.  
  23277.         SYMPTOM:    NA
  23278.  
  23279. ISSUE/PROBLEM
  23280.  
  23281.     The error 'BSPXCOM - Bad connection ID on send' means that Btrieve has sent a message to a workstation that has been timed out by the NetWare watchdog.  SPX will time out if there is no response from the workstation within 30 seconds.  This can occur if the workstation has gone down in  the time that a request was sent to Btrieve and the time Btrieve responded. If network traffic is very heavy and packets are delayed, this can also cause the problem.  Basically any delay in transmission of packets can cause the error message.
  23282.  
  23283.     This information is in regard to all versions of Btrieve NLMs.
  23284.  
  23285.  
  23286.  
  23287.  
  23288. FYI:    Btrieve NLM Status 96
  23289.                                      FYI
  23290.  
  23291. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23292.  
  23293.           TITLE:    Btrieve NLM Status 96
  23294.     DOCUMENT ID:    FYI.A.1915
  23295.            DATE:    24MAY91
  23296.         PRODUCT:    NetWare Btrieve
  23297. PRODUCT VERSION:    NA
  23298.      SUPERSEDES:    NA
  23299.  
  23300.         SYMPTOM:    NA
  23301.  
  23302. ISSUE/PROBLEM
  23303.  
  23304.     Here is a brief description of a problem reported to me by a customer. He was writing an NLM that was making calls to the Btrieve NLM v5.10 loaded at his server.  He was using the 'btrvID' symbol to make the call. After 30 "connects and disconnects" from the DOS workstation to the server, Btrieve returned a status 96 (Communications Environment Error).  If he used the 'btrv' symbol, everything worked fine.
  23305.  
  23306.     The fact that 'btrv' worked and 'btrvID' failed, narrows down the problem to the contents of the 'ClientID' parameter that is part of 'btrvID' but not 'btrv'.  As mentioned in my earlier FYI on this issue, the 'ClientID' parameter is made up of 16 bytes of 'char'.  The first 12 bytes are NOT to be used by the programmer/developer; they are used by Btrieve. The next 2 bytes are an identifier for the client NLM.  The last 2 bytes are supposed to be filled by the NLM with a unique value to distinguish one client from another.
  23307.  
  23308.     One valid value to put into the last 2 bytes is the connection ID for the connection between the client and the server.  However, whenever a unique ID is passed in the last 2 bytes of 'ClientID', Btrieve establishes a session. If the current connection is reset and a new connection is made, the connection ID will be different from the first one.  Therefore, a new Btrieve session will be established.  Once the maximum number of configured sessions has been reached, Btrieve will return a status 96.
  23309.  
  23310.     The proper way to get rid of this problem is to do a RESET (Btrieve operation 28) before exiting the client NLM.  This resets all the resources for the current client, and also resets the Btrieve session.  This is required of all NLMs communicating with BTRIEVE.NLM.  It is not documented in the manuals that discuss this issue.
  23311.  
  23312.     The documentation for status 96 in all manuals is incorrect.  It says SPX must be reloaded; but what really needs to be done is to go through BSetup and increase the number of concurrent Btrieve sessions.  This will change both Btrieve's '/s' parameter and BSPXCOM's '/s' parameter.  By default, Btrieve's '/s' parameter is configured to be twice the value of BSPXCOM's '/s' parameter. (BSPXCOM's '/s' parameter gets the value entered in BSETUP) The reason for this is to allow a minimum of the same number of NLM calls to Btrieve as the number of client calls.
  23313.  
  23314.     Now, to resolve some other issues.  Btrieve fills the first 12 bytes of 'ClientID' with the address of the server running the client NLM.  In Btrieve v5.10, BROUTER.NLM was the entity that was doing this task.  If Brouter was not loaded, then no other servers were being accessed by Btrieve.  Therefore, the first 12 bytes did not need to be filled - hence BTRIEVE.NLM did not fill them.  However, in Btrieve v5.15, BROUTER.NLM and BTRIEVE.NLM, both, fill the 12 bytes.  It's no big deal - just thought you might like to know.
  23315.  
  23316.     One last thing: customers can call us and reserve identifiers that get put into the 13th and 14th bytes of 'ClientID'.  This would guarantee, in some way, that Btrieve will not be confused by two or more NLMs using the same identifier.
  23317.  
  23318.  
  23319.  
  23320.  
  23321. FYI:    Btrieve Status 98
  23322.                                      FYI
  23323.  
  23324. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23325.  
  23326.           TITLE:    Btrieve Status 98
  23327.     DOCUMENT ID:    FYI.A.1914
  23328.            DATE:    24MAY91
  23329.         PRODUCT:    Btrieve
  23330. PRODUCT VERSION:    NA
  23331.      SUPERSEDES:    NA
  23332.  
  23333.         SYMPTOM:    NA
  23334.  
  23335. ISSUE/PROBLEM
  23336.  
  23337.     In general, Btrieve's errors can be generated at two times: when a request is on its way to/from the Btrieve engine.  When an erroneous request is on its way TO the Btrieve engine, the error will be detected by the engine.  When an erroneous request has been processed, and is on its way FROM the Btrieve engine, the error will be detected at the communications level.
  23338.  
  23339.     The status 98 (Internal Transaction Error) can only be returned when the preceding Btrieve operation generated an error when it was on its way TO the Btrieve engine.  Hence, a preceding status 22 (Data Buffer Length) would cause a status 98 on the following operation.  Note: status 22 is an "engine-level" error.  A preceding status 97 (Data Message Length) would not cause a status 98 on the following operation.  Note: status 97 occurs at the "communications-level" and is not "seen" by the Btrieve engine. Can the status 98 be returned when using Btrieve for DOS?
  23340.  
  23341.     Another explanation for the status 98 would be to say that if an application tries to perform an operation which is illegal, or logically inconsistent, then the 98 will be returned on the following call. Examples of illegal operations are those which return a status 5 (Duplicate Key Value), among others. If the operation being performed is legal, but simply not possible at the time it was requested (a later request for the same operation would be successfully processed) and a non-zero status is returned, for example status 85 (File in Use), then the following operation will not return the status 98.
  23342.  
  23343.     The status 98 indicates that an application was inside a transaction and an error occurred; that is, a non-zero status code was returned from a Btrieve application.  To recover from this the Abort Transaction (operation 21) has to be performed.
  23344.  
  23345.     Btrieve programmers may think that they can make certain Btrieve calls, and depending on the outcome of these calls, make other calls.  In other words, trap for a particular (non-zero) status code and issue another Btrieve call.  This is true, except it cannot be done inside a transaction.
  23346.  
  23347.     Following is an example of this.
  23348.  
  23349.         Begin Transaction
  23350.         Btrieve Insert operation
  23351.         If Status = 0
  23352.         Then ...Statement A...
  23353.         Else If Status = 5
  23354.          /* inserting duplicate value along non-duplicate key path */
  23355.         Then ...Statement B...
  23356.         .
  23357.         .
  23358.         .
  23359.         End Transaction
  23360.  
  23361.     A solution to this would be to add a COUNTER field to the record.  If the COUNTER is 0, then insert the record.  (Like a flag.)
  23362.  
  23363.     This problem was reported with the Btrieve VAPs v5.11.  According to the customer Btrieve v5.00 did not behave in this manner.
  23364.  
  23365.     Depending on the availability of time, I will compile a list of all non-zero status codes that will cause the return of status 98 on the following operation.
  23366.  
  23367.  
  23368.  
  23369.  
  23370. FYI:    Btrieve Status 79
  23371.                                      FYI
  23372.  
  23373. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23374.  
  23375.           TITLE:    Btrieve Status 79
  23376.     DOCUMENT ID:    FYI.A.1913
  23377.            DATE:    24MAY91
  23378.         PRODUCT:    Btrieve
  23379. PRODUCT VERSION:    NA
  23380.      SUPERSEDES:    NA
  23381.  
  23382.         SYMPTOM:    NA
  23383.  
  23384. ISSUE/PROBLEM
  23385.  
  23386.      WARNING:    This FYI contains no conclusive evidence on the possible/impossible causes of Btrieve's status 79.  It is merely a discussion of my experience; something you might want to keep in the backs of your minds.
  23387.  
  23388.     Recently, I received a call from a customer who was getting the Btrieve Status 79 (Internal Programming Error) when trying to open a Btrieve file. His application had been working just fine until the night before when he got the Btrieve status 95.  So, he went through BSetup and reconfigured Btrieve, and reinstalled the Btrieve NLMs (v5.11).  This resulted in the status 79.  Before going any further, let me say that the problem went away miraculously.  I could not find any documentation on this, so I am writing this FYI.
  23389.  
  23390.     The peculiar thing about this incident was that only one user at the customer site was having the problem.  Other users could use their own sets of Btrieve files, or even the particular users set of files - and the problem would not manifest itself.  Also, applications similar to the 79-prone-application seemed to run without any glitches.  Reconfiguring Btrieve to the settings prior to the status 95 made no difference in the status 79 problem.  According to development, Btrieve had gotten into a section of code that it was not expected to get into.  Obviously, as one might expect, B.EXE did not reproduce the problem.  In other words, the causes of the error had been narrowed down to: ANYTHING!
  23391.  
  23392.     Basically, the application used two sets of files.  One set (COMMON) was accessed by all the users running the application, and was contained in a directory all the users had rights to.  The other set (LOCAL) was a copy of the COMMON set that all users of the application had in their work directories.  The sequence of operations that resulted in the 79 is not worth mentioning.  However, this is how the problem was (accidentally) solved.
  23393.  
  23394.     The application was opening files from LOCAL and COMMON.  The error was returned on opening the COMMON file.  The customer redefined the LOCAL file (I don't know why), and the problem went away!  The file description was changed from:
  23395.  
  23396.             94 bytes of various key types.
  23397.             41 bytes of Zstring
  23398.             41 bytes of Zstring
  23399.              6 bytes of Zstring
  23400.              4 bytes of Integer
  23401.              4 bytes of Integer
  23402.              4 bytes of Integer
  23403.      to:
  23404.  
  23405.             94 bytes of various key types (same as before)
  23406.             41 bytes of Zstring
  23407.              4 bytes of Integer
  23408.             41 bytes of Zstring
  23409.              4 bytes of Integer
  23410.              6 bytes of Zstring
  23411.              4 bytes of Integer
  23412.  
  23413.     I guess this was one of those freak incidents where an error appears out of nowhere, lingers around for awhile, and then disappears into nowhere. If any of you ever face this creature, just hang in there.  I'm sure it will make itself scarce.
  23414.  
  23415.  
  23416.  
  23417.  
  23418. FYI:    Access Server Timers
  23419.                                      FYI
  23420.  
  23421. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23422.  
  23423.           TITLE:    Access Server Timers
  23424.     DOCUMENT ID:    FYI.A.1912
  23425.            DATE:    24MAY91
  23426.         PRODUCT:    NA
  23427. PRODUCT VERSION:    NA
  23428.      SUPERSEDES:    NA
  23429.  
  23430.         SYMPTOM:    NA
  23431.  
  23432. ISSUE/PROBLEM
  23433.  
  23434.     When a workstation loses its LAN session with the FileServer, and has Btrieve files open at the server, the files will remain open for approximately 15 minutes.  For workstation based Btrieve, if the files need to be closed before then, FCONSOLE can be used to reset the original session, thereby releasing the files.  For server based Btrieve VAP, B ACTIVE, B RESET xx should be used to close the Btrieve files.  For server based Btrieve NLM, BCONSOLE Userlist <delete> (at the server) should be used to release the Btrieve files for the workstation.
  23435.  
  23436.     When using the Access Server, (in the event of the loss of a session), two timers come into play: Inactivity Timer and Reconnect Timer.  Here is the information I received from development.  The Inactivity Timer checks for session activity; if there is none, the session is logged out (stopped).  The Reconnect Timer is the amount of time available to the session to reconnect itself, otherwise the connection will be lost (reset). If the user dials in before this timer expires, he/she can continue where they left off.
  23437.  
  23438.  
  23439.  
  23440.  
  23441. FYI:    Network C for NLMs SDK 2.0 Documentation (CLIB 3.11)
  23442.                                      FYI
  23443.  
  23444. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23445.  
  23446.           TITLE:    Network C for NLMs SDK 2.0 Documentation (CLIB 3.11)
  23447.    DOCUMENT ID#:    FYI.A.3803
  23448.            DATE:    23MAY91
  23449.         PRODUCT:    NA
  23450. PRODUCT VERSION:    NA
  23451.      SUPERSEDES:    NA
  23452.  
  23453.         SYMPTOM:    NA
  23454.  
  23455. ISSUE/PROBLEM
  23456.  
  23457.     GetDiskUtilization () - fourth parameter, usedFiles, is documented as a pointer to WORD. It should be a pointer to LONG.
  23458.  
  23459.     Fifth parameter, usedBlocks, of the same function is documented as a pointer to WLONG. It should be a pointer to LONG.
  23460.  
  23461.  
  23462.  
  23463.  
  23464. FYI:    Network C for NLMS SDK V.2.0 - Documentation
  23465.                                      FYI
  23466.  
  23467. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23468.  
  23469.           TITLE:    Network C for NLMS SDK V.2.0 - Documentation
  23470.    DOCUMENT ID#:    FYI.A.3802
  23471.            DATE:    23MAY91
  23472.         PRODUCT:    NA
  23473. PRODUCT VERSION:    NA
  23474.      SUPERSEDES:    NA
  23475.  
  23476.         SYMPTOM:    NA
  23477.  
  23478. ISSUE/PROBLEM
  23479.  
  23480.     Most of the functions return values have been documented both as decimals as well as their equivalent error message. In order to use the error message in the code, niterror.h file (where all the error macros have been defined) should be included in the source code.
  23481.  
  23482.  
  23483.  
  23484.  
  23485. FYI:    IPX EntryPoints
  23486.                                      FYI
  23487.  
  23488. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23489.  
  23490.           TITLE:    IPX EntryPoints
  23491.    DOCUMENT ID#:    FYI.A.3318
  23492.            DATE:    23MAY91
  23493.         PRODUCT:    NA
  23494. PRODUCT VERSION:    NA
  23495.      SUPERSEDES:    NA
  23496.  
  23497.         SYMPTOM:    NA
  23498.  
  23499. ISSUE/PROBLEM
  23500.  
  23501.     There have been a few customers asking if there were any NEW IPX entry points in the last few weeks.  Per Drex Dixon (Provo - He is part of the IPX Development Group), there are none.  The recommended procedure is still to call IPX by making a far call to the IPX interface.
  23502.  
  23503.     The same customer said that he noticed that with the 3.x release of IPX there were a lot more calls being made through INT 2F than before.  Per Drex, this is due to IPX calling IPXRelinquishControl.  This was added for Windows compatibility in the 3.x versions of IPX.
  23504.  
  23505.  
  23506.  
  23507.  
  23508. FYI:    Task Mode / EOJ
  23509.                                      FYI
  23510.  
  23511. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23512.  
  23513.           TITLE:    Task Mode / EOJ
  23514.    DOCUMENT ID#:    FYI.A.3317
  23515.            DATE:    23MAY91
  23516.         PRODUCT:    NA
  23517. PRODUCT VERSION:    NA
  23518.      SUPERSEDES:    NA
  23519.  
  23520.         SYMPTOM:    NA
  23521.  
  23522. ISSUE/PROBLEM
  23523.  
  23524.     I had a customer problem that may prove interesting to some of you.  His application opened a file and then spawned Windows.  It then loaded multiple Windows' applications and returned to the parent process.  Upon returning to the parent, the application attempted to access the file opened before the spawn, but received an error indicating an invalid handle.  The handle should have been valid, but when Windows terminated the NetWare shell thought that all tasks for the process had completed and shut  down all of the network resources.
  23525.  
  23526.     By using either the SetEndOfJobStatus API or the EOJ=OFF SHELL.CFG option the customer was able to resolve the problem.  Setting TASK MODE = 4 or using the task mode API also allowed his program to function properly. However, it has been recommended to use EOJ over TASK MODE whenever possible. This is because some application cleanup can still be performed when EOJ is turned off, but none is done if TASK MODE is set to 4.
  23527.  
  23528.     One note,  there is the possibility of NetWare Resources (i.e Semaphores, Files) being left in use when the above is implemented.  This will be eventually released by WATCHDOG.
  23529.  
  23530.  
  23531.  
  23532.  
  23533. FYI:    Wait locks and Btrieve for Windows (All versions)
  23534.                                      FYI
  23535.  
  23536. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23537.  
  23538.           TITLE:    Wait locks and Btrieve for Windows (All versions)
  23539.     DOCUMENT ID:    FYI.A.2010
  23540.            DATE:    23MAY91
  23541.         PRODUCT:    Btrieve
  23542. PRODUCT VERSION:    NA
  23543.      SUPERSEDES:    NA
  23544.  
  23545.         SYMPTOM:    NA
  23546.  
  23547. ISSUE/PROBLEM
  23548.  
  23549.     With Btrieve for Windows, wait locks (+200 and +400) are interpreted as nowait locks (+100 and +300).  Wait locks are not implemented  because a Btrieve Windows application waiting on a lock on a local file  to be released by another session will hang the sessions.  The sessions will hang because the session that is waiting for the lock cannot release control back to the session that has the lock so it can release the lock.  If an application issues a +wait lock operation to Btrieve for Windows and the record to be locked is already locked, Btrieve will return a status 84 (record in use) just as if a +nowait lock was issued.
  23550.  
  23551.     A scheme, such as the following, should be implemented in the Btrieve Windows program code when using locks:
  23552.  
  23553.         while ( (CallBtrv (ops)) == 84)
  23554.             yieldControl ();
  23555.  
  23556.     The programmer should implement a routine that will yield control back to Windows.  This routine can then be called between each test for the status 84 (record in use).  This will allow the session holding the lock processing time to release the lock.
  23557.  
  23558.  
  23559.  
  23560.  
  23561. FYI:    Btrieve Update and Delete with Get Key
  23562.                                      FYI
  23563.  
  23564. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23565.  
  23566.           TITLE:    Btrieve Update and Delete with Get Key
  23567.     DOCUMENT ID:    FYI.A.2009
  23568.            DATE:    23MAY91
  23569.         PRODUCT:    Btrieve
  23570. PRODUCT VERSION:    NA
  23571.      SUPERSEDES:    NA
  23572.  
  23573.         SYMPTOM:    NA
  23574.  
  23575. ISSUE/PROBLEM
  23576.  
  23577.     Btrieve does not allow Update (op 3) or Delete (op 4) operations after a Get Key operation (+50).  Before Btrieve does an update or delete, it has to compare the current usage count of the data page it is about to modify with the usage count of the data page when the  record was read.  In order to get the usage count when the record is  read, the data page has to be read.  Since a Get Key (+50) operation  does not read the data page, there is no usage count for Btrieve to  compare with on the update or delete. So, the update or delete will fail because Btrieve cannot do its passive concurrency conflict checking without the compare.
  23578.  
  23579.     When the update or delete fails, a status 8 (invalid positioning) will be returned.  Don't let this confuse you when you look at the patches for Btrieve 5.10.  Patch #24 states that it corrects a problem of the positioning not being updated correctly on Get Key operations. This patch only corrects a problem so that Btrieve can do a Get  Position (22) operation after a Get Key operation.
  23580.  
  23581.     This FYI is in regard to all versions/platforms of Btrieve.
  23582.  
  23583.  
  23584.  
  23585.  
  23586. FYI:    OS/2 1.3 Requester DLL
  23587.                                      FYI
  23588.  
  23589. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23590.  
  23591.           TITLE:    OS/2 1.3 Requester DLL
  23592.    DOCUMENT ID#:    FYI.A.1619
  23593.            DATE:    23MAY91
  23594.         PRODUCT:    NA
  23595. PRODUCT VERSION:    NA
  23596.      SUPERSEDES:    NA
  23597.  
  23598.         SYMPTOM:    NA
  23599.  
  23600. ISSUE/PROBLEM
  23601.  
  23602.     The OS/2 SDK for the 1.3 Requester no longer ships with any DLL's. These DLL's are now shipped with the 1.3 Requester only.  The developer may NOT distribute the DLL's, and may only distribute the .LIB files by linking them into his application.
  23603.  
  23604.     The DLL's shipping with the requester are:
  23605.  
  23606.      NWCALLS.DLL, SPXCALLS.DLL, IPXCALLS.DLL, NETAPI.DLL, NPCALLS.DLL,
  23607.      TLI_SPX.DLL, TLI_TCP.DLL, MAILSLOT.DLL, and NWCONFIG.DLL
  23608.  
  23609.     The LIB's shipping with the SDK are:
  23610.  
  23611.      NWCALLSR.LIB, NWCALLSP.LIB, SPXCALLS.LIB, IPXCALLS.LIB, NETAPI.LIB,
  23612.      NPCALLS.LIB, and TLI.LIB
  23613.  
  23614.  
  23615.  
  23616.  
  23617. FYI:    GetVolUsage
  23618.                                      FYI
  23619.  
  23620. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23621.  
  23622.           TITLE:    GetVolUsage
  23623.    DOCUMENT ID#:    FYI.A.1618
  23624.            DATE:    23MAY91
  23625.         PRODUCT:    NA
  23626. PRODUCT VERSION:    NA
  23627.      SUPERSEDES:    NA
  23628.  
  23629.         SYMPTOM:    NA
  23630.  
  23631. ISSUE/PROBLEM
  23632.  
  23633.     There are 2 problems with GetVolUsage in the C Interface-DOS v1.2 libraries.
  23634.  
  23635.     On a NetWare v3.x server, GetVolUsage returns 0 for both valid and invalid volumes (This was tested with v3.1 and v3.11).  The problem is actually in the NCP (NetWare Core Protocal) call.  The NCP call always returns status 0.
  23636.  
  23637.     A workaround for this is to modify the source for this call (found in ...\SOURCE\CLIENT\GETVOLUS.C) to check for a blank volume name.  Add a line to the code as follows:
  23638.  
  23639.     if (IsV3Supported(serverConnID) == FALSE)
  23640.     {
  23641.        .
  23642.        .
  23643.        .
  23644.     }
  23645.     else
  23646.     {
  23647.        requestBody[2]   = 44;               /* subfunction code */
  23648.  
  23649.        ccode   = _NCPConnRequest(serverConnID, 22, REQUEST_BODY, requestBody,
  23650.                                   sizeof(volInfoV30), &volInfoV30);
  23651.        if (ccode == 0)
  23652.        {
  23653.  ┌───>    if (volInfoV30.volName[0] == 0) return(VOLUME_DOES_NOT_EXIST);
  23654.  │     .
  23655.  │     .
  23656.  │     .
  23657.  │     }
  23658.  └─ Add this line
  23659.  
  23660.     This will check if the volume name is blank and return that the volume does not exist.
  23661.  
  23662.     On a NetWare v2.x server, GetVolUsage cuts off the first 2 characters of the volume name, which throws off the alignment of the remainder of the structure.  To fix this, change startingBlock[4] to startingBlock[2], in the structure definition VOL_INFO_V2X, as follows:
  23663.  
  23664.    typedef struct
  23665.    {
  23666.       BYTE   systemIntervalMarker[4];
  23667.       BYTE   volumeNumber;
  23668.       BYTE   logicalDriveNumber;
  23669.       BYTE   blockSize[2];
  23670.       BYTE   startingBlock[4];      <─────────┐
  23671.       BYTE   totalBlocks[2];                  │
  23672.       BYTE   freeBlocks[2];                   │
  23673.       BYTE   totalDirEntries[2];              │
  23674.       BYTE   freeDirEntries[2];               │
  23675.       BYTE   actualMaxUsedDirEntries[2];      │
  23676.       BYTE   volHashed;                       │
  23677.       BYTE   volCached;                       ├───── Change from [4] to [2]
  23678.       BYTE   volRemovable;                    │
  23679.       BYTE   volMounted;                      │
  23680.       BYTE   volName[16];                     │
  23681.    } VOL_INFO_V2X;                            │
  23682.                                               │
  23683.       BYTE   startingBlock[2];      <─────────┘
  23684.  
  23685.  
  23686.  
  23687.  
  23688. FYI:    Network C for NLMs - SDK release a - documentation
  23689.                                      FYI
  23690.  
  23691. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23692.  
  23693.           TITLE:    Network C for NLMs - SDK release a - documentation
  23694.    DOCUMENT ID#:    FYI.A.3801
  23695.            DATE:    22MAY91
  23696.         PRODUCT:    NA
  23697. PRODUCT VERSION:    NA
  23698.      SUPERSEDES:    NA
  23699.  
  23700.         SYMPTOM:    NA
  23701.  
  23702. ISSUE/PROBLEM
  23703.  
  23704.      BeginThreadGroup () ;
  23705.  
  23706.     The Return Values section of BeginThreadGroup () states that this function "returns new thread groups if successful". It should mention that this function returns new thread groups ID if successful.
  23707.  
  23708.  
  23709.  
  23710.  
  23711. FYI:    SCANBIND Bug in NWCNLMs vSDK(a)
  23712.                                      FYI
  23713.  
  23714. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23715.  
  23716.           TITLE:    SCANBIND Bug in NWCNLMs vSDK(a)
  23717.    DOCUMENT ID#:    FYI.A.3109
  23718.            DATE:    22MAY91
  23719.         PRODUCT:    NA
  23720. PRODUCT VERSION:    NA
  23721.      SUPERSEDES:    NA
  23722.  
  23723.         SYMPTOM:    NA
  23724.  
  23725. ISSUE/PROBLEM
  23726.  
  23727.     There is a program called SCANBIND that ships with the Network C for NLMs SDK(a) toolkit that can abend the server under certain conditions.  There is an uninitialized variable called "nonZeroRow" in the function DisplayPropertyValue() that needs to be initialized to zero to correct the problem.  The cases that we know of that abend the server are 1) if PATCH31 is loaded on v3.1, and 2) if PROTECT is loaded on v3.11.  There might be other cases as well.  This example has been in all previous versions of this toolkit.
  23728.  
  23729.  
  23730.  
  23731.  
  23732. FYI:    Btrieve Accelerated Open Mode
  23733.                                      FYI
  23734.  
  23735. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23736.  
  23737.           TITLE:    Btrieve Accelerated Open Mode
  23738.     DOCUMENT ID:    FYI.A.2008
  23739.            DATE:    22MAY91
  23740.         PRODUCT:    Btrieve
  23741. PRODUCT VERSION:    NA
  23742.      SUPERSEDES:    NA
  23743.  
  23744.         SYMPTOM:    NA
  23745.  
  23746. ISSUE/PROBLEM
  23747.  
  23748.     With Btrieve for DOS, if a file is open in accelerated mode, no other application can open the file.  Yes, that is right, if a file is open in accelerated mode, it cannot be opened again in any mode - not accelerated nor read-only.
  23749.  
  23750.     With the Btrieve VAP or NLM a file can be opened multiple times in accelerated mode.  But, if a file is open in accelerated mode all subsequent opens must be in accelerated mode.
  23751.  
  23752.  
  23753.  
  23754.  
  23755. FYI:    Valid Filename Formats on a Btrieve Open
  23756.                                      FYI
  23757.  
  23758. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23759.  
  23760.           TITLE:    Valid Filename Formats on a Btrieve Open
  23761.     DOCUMENT ID:    FYI.A.2007
  23762.            DATE:    22MAY91
  23763.         PRODUCT:    Btrieve
  23764. PRODUCT VERSION:    NA
  23765.      SUPERSEDES:    NA
  23766.  
  23767.         SYMPTOM:    NA
  23768.  
  23769. ISSUE/PROBLEM
  23770.  
  23771.     NetWare Btrieve (the VAP or NLM) will accept the following formats as valid filenames in the keybuffer on an open operation.
  23772.  
  23773.         <server>\<vol>:<path>\<file>
  23774.  
  23775.         \\<server>\<vol>\<path>\<file>       /* That's right - no colon */
  23776.  
  23777.         <vol>:<path>\<file>
  23778.  
  23779.         <drive>:<path>\<file>
  23780.  
  23781.     In the second case, both slashes before the server must point in the  same direction and the slash without the colon is required before  the path.  In all other cases a '\' may be added before the path  and the '\''s can be substituted with '/''s.
  23782.  
  23783.     With Btrieve for DOS, only the last format is valid.
  23784.  
  23785.  
  23786.  
  23787.  
  23788. FYI:    Btrieve NLM - Status 91
  23789.                                      FYI
  23790.  
  23791. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23792.  
  23793.           TITLE:    Btrieve NLM - Status 91
  23794.     DOCUMENT ID:    FYI.A.1911
  23795.            DATE:    22MAY91
  23796.         PRODUCT:    NetWare Btrieve
  23797. PRODUCT VERSION:    NA
  23798.      SUPERSEDES:    NA
  23799.  
  23800.         SYMPTOM:    NA
  23801.  
  23802. ISSUE/PROBLEM
  23803.  
  23804.     Normally, when one encounters the Btrieve status 91, either the server is down, or Btrieve has not been loaded at the server.  However, there can be other reasons for getting a status 91.
  23805.  
  23806.     From my understanding, document management systems that use Btrieve (like PC-DOCS) have strict requirements in terms of the setup (configuration) of Btrieve at the server.  Using Btrieve NLMs v5.10, one of my customers experienced the problem where their setting for the number of concurrent SPX sessions (the /s load parameter for BSPXCOM.NLM) was set to 15 (default).  PC-DOCS requires this value to be 250!  They state this in their documentation, but users may not be aware of this.  So if any of you run into a status 91, remember to check to see if any kind of document management system (PC-DOCS in particular) is in use.
  23807.  
  23808.  
  23809.  
  23810.  
  23811. FYI:    Windows Swap Files
  23812.                                      FYI
  23813.  
  23814. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23815.  
  23816.           TITLE:    Windows Swap Files
  23817.    DOCUMENT ID#:    FYI.A.1617
  23818.            DATE:    22MAY91
  23819.         PRODUCT:    NA
  23820. PRODUCT VERSION:    NA
  23821.      SUPERSEDES:    NA
  23822.  
  23823.         SYMPTOM:    NA
  23824.  
  23825. ISSUE/PROBLEM
  23826.  
  23827.     Windows 3.0, running under Enhanced mode, allows two kinds of swap files. Temporary and fixed.
  23828.  
  23829.     Temporary swap files are created when you start Windows and removed when you exit Windows.  If you exit Windows "dirty" (i.e. re-boot or lock-up) the temporary swap file is not deleted.  It will be removed the next time you start Windows, though, as long as you haven't changed your settings. The following settings in the SYSTEM.INI file (under [386Enh]) affect temporary swap files:
  23830.  
  23831.          Paging=yes
  23832.          PagingDrive=F:
  23833.          MinUserDiskSpace=1024
  23834.          MaxPagingFileSize=1024
  23835.  
  23836.     Paging tells Windows whether it can use temporary swap files and PagingDrive tells Windows which drive the temporary swap file resides on(in this case F:).  The MinUserDiskSpace tells Windows how much free disk space to leave after the temporary swap file is created (in this case, you will always have 1MB of disk space free when you start Windows, unless you had less than 1MB to start with).  The MaxPagingFileSize tells Windows how large its allowed to make the temporary swap file (in this case, 1MB).  It is not recommended that the temporary swap file reside in a RAM disk, as this space is better used by Windows directly, and, assigning a swap file to a network drive lowers network performance by increasing server workload and LAN traffic.  In addition, when Windows creates a swap file, it creates the file all at once. Under NetWare, this space is then filled with zeros as a security measure (which can't be turned off).  This activity also lowers network performance.
  23837.  
  23838.     Permanent swap files must be set up using the SwapFile utility, but are much faster than temporary swap files.  The SwapFile utility resides in the Windows directory and must be run under Windows in REAL mode.  To do this, start Windows with WIN /R, pick RUN from the file menu in program manager, type in swapfile, and hit enter or click on OK.  NO other Windows programs should be running, including any screen blankers, etc.  This is a fully interactive utility that lets you specify where your swap file resides and how large it should be.  It also allows you to delete the existing (if any) permanent swap file.  The swap file is created only on contiguous blocks of disk space.  Therefore it is wise to "compact" your hard disk before running SwapFile.  SwapFile will only allow local hard disks to be used as Windows must access the swap file directly (bypassing DOS). The permanent swap file actually consists of two hidden, read-only files: SPART.PAR and 386SPART.PAR in the root directory of the specified swap drive.
  23839.  
  23840.     When Windows runs in either standard or real modes, it does not use the above "style" of swap files.  Instead, it creates application swap files. The location of these application swap files is configurable by changing the following parameter under the [NonWindowsAPP] section of the SYSTEM.INI file:
  23841.  
  23842.          SwapDisk=c:\temp
  23843.  
  23844.     In this case, Windows would place the application swap files on drive C: in the \temp directory.  Application swap file names begin with ~WOA.  This can also be set with a TEMP environment variable, which overrides the SYSTEM.INI setting:
  23845.  
  23846.          SET TEMP=c:\temp
  23847.  
  23848.  
  23849.  
  23850.  
  23851. FYI:    Removing Directories
  23852.                                      FYI
  23853.  
  23854. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23855.  
  23856.           TITLE:    Removing Directories
  23857.    DOCUMENT ID#:    FYI.A.1616
  23858.            DATE:    22MAY91
  23859.         PRODUCT:    NA
  23860. PRODUCT VERSION:    NA
  23861.      SUPERSEDES:    NA
  23862.  
  23863.         SYMPTOM:    NA
  23864.  
  23865. ISSUE/PROBLEM
  23866.  
  23867.     If you remove a directory out from under someone, the results will vary depending on the version of NetWare you are running on.  For example, if station A's current directory was SYS:TEMP (and TEMP had NO files in it) and station B used the command:
  23868.  
  23869.          RD \TEMP
  23870.  
  23871.     the behavior (and return) of the DOS remove directory would be different on a 2.x server vs a 3.x server:
  23872.  
  23873.     NetWare v2.x
  23874.  
  23875.      Under NetWare v2.x, station B would receive the error message:
  23876.  
  23877.               Invalid path, not directory,
  23878.               or directory not empty
  23879.  
  23880.      and nothing would happen to the directory.
  23881.  
  23882.     NetWare v3.x
  23883.  
  23884.     Under NetWare v3.x, station B would receive NO error message and the directory would be deleted.  Station A, if at a DOS prompt, would still be at a DOS prompt until they hit return or tried to run a program.  Then, they would get the error message:
  23885.  
  23886.               Current drive is no longer valid>
  23887.  
  23888.      and would then need to type in a valid drive letter.
  23889.  
  23890.     I checked with LANSWER and they informed me that the change in NetWare v3.x was due to enhancement requests to be able to remove empty directories out from under people.  So, I asked them to "enhance" NetWare v2.x to react the same and for both versions to allow this "feature" to be changed.  I'll let you know if this ever happens.
  23891.  
  23892.  
  23893.  
  23894.  
  23895. FYI:    Error creating bindery files
  23896.                                      FYI
  23897.  
  23898. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23899.  
  23900.           TITLE:    Error creating bindery files
  23901.     DOCUMENT ID:    FYI.A.1604
  23902.            DATE:    22MAY91
  23903.         PRODUCT:    NA
  23904. PRODUCT VERSION:    NA
  23905.      SUPERSEDES:    NA
  23906.  
  23907.         SYMPTOM:    NA
  23908.  
  23909. ISSUE/PROBLEM
  23910.  
  23911.     There is a confirmed problem with NetWare v3.1 and Btrieve that can be the cause for the message "Error creating bindery files" at the file server or for users not being able to log in because the bindery is closed or for programs not being able to read/write/create bindery information. The problem is in the OS, but shows up consistently when BTRIEVE.NLM is loaded. If, while the Btrieve NLM is inside a transaction, the Bindery is CLOSED and OPENED, the bindery will no longer be able to be accessed again, until the server is downed.  This occurs whether or not the Btrieve file has been flagged transactional.  Btrieve developers explained that this is because, when the NLM receives a TTSBeginTransaction request, it makes an OS TTSBeginTransaction call, whether or not the file is flagged transactional.
  23912.  
  23913.     The possible reason behind this problem is not known, although it seems the OS is losing track of whether it has the bindery open or not.  This theory is backed up by the fact that the bindery files are, in fact, listed as open by connection 0, task 1.  This is the normal status for these files when the bindery is available.  When the bindery is CLOSED, the files are not open by any connection (unless a connection does an explicit open on one of them).
  23914.  
  23915.     The official word to pass on to customers with this problem is that the problem has been fixed in NetWare 3.11.  You may also suggest the following workaround:
  23916.  
  23917.     1)    DO NOT run backup software while BTRIEVE.NLM is processing transactions (ie. no BEGIN TRANSACTION was run from a workstation).  A simpler answer is not to run Btrieve while running backup software that backs up the bindery.
  23918.  
  23919.     2)    Repeat 1...<grin>
  23920.  
  23921.     If the customer is calling in because they've done #1 above, have them down the server and bring it back up again.  This should restore everything back to normal.  If it doesn't, and they still cannot log in, have them run VREPAIR (at the server type LOAD VREPAIR) and repair volume SYS:.
  23922.  
  23923.  
  23924.  
  23925.  
  23926. FYI:    Print Server Subdirectory Not Deleted In PCONSOLE 1.51
  23927.                                      FYI
  23928.  
  23929. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23930.  
  23931.           TITLE:    Print Server Subdirectory Not Deleted In PCONSOLE 1.51
  23932.    DOCUMENT ID#:    FYI.P.9522
  23933.            DATE:    21MAY91
  23934.         PRODUCT:    NetWare
  23935. PRODUCT VERSION:    v3.11
  23936.      SUPERSEDES:    NA
  23937.  
  23938.         SYMPTOM:    After deleting print server, the print server directory is not being deleted.
  23939.  
  23940. ISSUE/PROBLEM
  23941.  
  23942.     When a queue or print server is created through PCONSOLE, a subdirectory with the queue/print server ID is also created under directory SYSTEM.  When the queue or print server is subsequently deleted the associated subdirectory should also be deleted.  With PCONSOLE 1.51 the queue subdirectory is correctly deleted but the print server subdirectory is not.
  23943.  
  23944. SOLUTION
  23945.  
  23946.     The newest version of PCONSOLE v1.52 fixes this problem.  This is in PUTIL2.ZIP in NOVLIB 06.
  23947.  
  23948.  
  23949.  
  23950.  
  23951. FYI:    Borland C++ Warnings with Turbo C interface
  23952.                                      FYI
  23953.  
  23954. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  23955.  
  23956.           TITLE:    Borland C++ Warnings with Turbo C interface
  23957.     DOCUMENT ID:    FYI.A.1216
  23958.            DATE:    21MAY91
  23959.         PRODUCT:    NA
  23960. PRODUCT VERSION:    NA
  23961.      SUPERSEDES:    NA
  23962.  
  23963.         SYMPTOM:    NA
  23964.  
  23965. ISSUE/PROBLEM
  23966.  
  23967.     Developers have been calling in complaining about our TURCBTRV.C interface not being fully compatible with the Borland C++ compiler. When the C++ compiler switch is enabled, it generates some warnings. All that's needed to get rid of the warnings are a couple of minor changes in how you define the BTRV function. These changes will be in the interface in the next release of Btrieve. If developers ask, you can describe the changes or fax them a copy of the changes below.
  23968.  
  23969.      *****************TURCBTRV.C  before the changes******************
  23970.  
  23971.      int BTRV (OP, POS_BLK, DATA_BUF, DATA_LEN, KEY_BUF, KEY_NUM)   int  OP;
  23972.        char POS_BLK[];
  23973.        char DATA_BUF[];
  23974.        int  *DATA_LEN;
  23975.        char KEY_BUF[];
  23976.        int  KEY_NUM;
  23977.  
  23978.      {
  23979.  
  23980.      *****************TURCBTRV.C  after the changes*********************
  23981.  
  23982.      /* Prototype - required for C++ type checking */
  23983.      int BTRV (int, char *, char *, int *, char *, int);
  23984.  
  23985.      /* define the BTRV function; with C++ you should use this format */ int
  23986.      BTRV (int OP, char *POS_BLK, char *DATA_BUF, int *DATA_LEN,   char
  23987.      *KEY_BUF, int KEY_NUM)
  23988.  
  23989.      {
  23990.  
  23991.  
  23992.  
  23993.  
  23994. FYI:    Battery Low Errors.  Elgar UPS In NetWare v3.11
  23995.                                      FYI
  23996.  
  23997. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  23998.  
  23999.           TITLE:    Battery Low Errors.  Elgar UPS In NetWare v3.11
  24000.    DOCUMENT ID#:    FYI.P.9520
  24001.            DATE:    20MAY91
  24002.         PRODUCT:    NetWare
  24003. PRODUCT VERSION:    v3.11
  24004.      SUPERSEDES:    NA
  24005.  
  24006.         SYMPTOM:    Getting error at server saying the battery is low.
  24007.  
  24008. ISSUE/PROBLEM
  24009.  
  24010.     Getting error at server saying the battery is low even though the UPS charged the battery through the weekend.  He used the following command line in AUTOEXEC.NCF:load ups type=keycard port=230 discharge=10 recharge=120
  24011.  
  24012. SOLUTION
  24013.  
  24014.     Elgar told him to set JMP1 and JMP5, on the SS keycard, to "closed contact". That means the jumper goes to S2 for JMP1 and jumper goes to S10 for JMP5.
  24015.  
  24016.  
  24017.  
  24018.  
  24019. FYI:    Error "Unable To Read Drive 00"
  24020.                                      FYI
  24021.  
  24022. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24023.  
  24024.           TITLE:    Error "Unable To Read Drive 00"
  24025.    DOCUMENT ID#:    FYI.P.9519
  24026.            DATE:    20MAY91
  24027.         PRODUCT:    NetWare
  24028. PRODUCT VERSION:    v2.2
  24029.      SUPERSEDES:    NA
  24030.  
  24031.         SYMPTOM:    Gets the error "Unable to read drive 00" when trying to copy.
  24032.  
  24033. ISSUE/PROBLEM
  24034.  
  24035.     As the file server would boot strange things would occur (hang, parity errors, etc.), but after several retries the server would come up.  The client at this point tries to copy files and after a couple of files have been copied receives: "unable to read drive 00:" "Unable to write to drive 00:" "Hot Fix disabled."
  24036.  
  24037. SOLUTION
  24038.  
  24039.     After troubleshooting the basics (drivers, controller etc.) we had him look at the connections of the drive itself.  As the power cable was bumped the drive began to spin up.  The 12v cable had been pinched and was open intermittently causing a loss of power to the drive motor.  Replaced the cable and all errors have disappeared and the server boots every time error free.
  24040.  
  24041.  
  24042.  
  24043.  
  24044. FYI:    Mirroring Considerations
  24045.                                      FYI
  24046.  
  24047. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24048.  
  24049.           TITLE:    Mirroring Considerations
  24050.    DOCUMENT ID#:    FYI.P.9518
  24051.            DATE:    20MAY91
  24052.         PRODUCT:    NetWare
  24053. PRODUCT VERSION:    v2.2
  24054.      SUPERSEDES:    NA
  24055.  
  24056.         SYMPTOM:    Failed attempts to mirror drives.
  24057.  
  24058. ISSUE/PROBLEM
  24059.  
  24060.     Mirroring in non-dedicated mode with removable media.
  24061.  
  24062. SOLUTION
  24063.  
  24064.     If you have a customer who wants to mirror, but is un able to, make sure that he has NOT selected to run nondedicated and also make sure that they have not selected a drive type that is for removable media.  Mirroring is not supported in either of these cases.
  24065.  
  24066.  
  24067.  
  24068.  
  24069. FYI:    NETCON Not Supported Under NetWare Requestor For OS/2
  24070.                                      FYI
  24071.  
  24072. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24073.  
  24074.           TITLE:    NETCON Not Supported Under NetWare Requestor For OS/2
  24075.    DOCUMENT ID#:    FYI.P.9517
  24076.            DATE:    20MAY91
  24077.         PRODUCT:    NetWare Requester for OS/2
  24078. PRODUCT VERSION:    v1.3
  24079.      SUPERSEDES:    NA
  24080.  
  24081.         SYMPTOM:    Cannot run NETCON on an OS/2 Client.
  24082.  
  24083. ISSUE/PROBLEM
  24084.  
  24085.     In the Novell NetWare Requester For OS/2 manual (page 47 in the March 1991 edition; page 57 in the April 1991 edition), it lists NETCON among the NetWare utilities supported under OS/2. This is incorrect.  NETCON is not supported under OS/2 and won't be anytime soon.
  24086.  
  24087. SOLUTION
  24088.  
  24089.     Documentation has been notified of this error.
  24090.  
  24091.  
  24092.  
  24093.  
  24094. FYI:    Limitation in using Variable Length Fields/XQL v2.11
  24095.                                      FYI
  24096.  
  24097. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  24098.  
  24099.           TITLE:    Limitation in using Variable Length Fields/XQL v2.11
  24100.     DOCUMENT ID:    FYI.A.1722
  24101.            DATE:    20MAY91
  24102.         PRODUCT:    XQL
  24103. PRODUCT VERSION:    2.11
  24104.      SUPERSEDES:    NA
  24105.  
  24106.         SYMPTOM:    NA
  24107.  
  24108. ISSUE/PROBLEM
  24109.  
  24110.     With XQL/NetWare SQL v2.11, the parser used by XQLCompile can only handle objects up to 255 bytes in length.  This means, any data values passed to XQLCompile can have a maximum length of 255, including data for variable length fields.  Hence, INSERT INTO TableA VALUES (1, 2, "long data ... ") where the third field in TableA is a Note or LVar field, will return a status 546 - "Maximum string size is 255 bytes" if there is more than 255 bytes of data within the quotes.
  24111.  
  24112.     A workaround is to pass the following statement to XQLCompile: INSERT INTO TableA VALUES (1, 2, @NOTE)  followed by a call to XQLSubst to substitute your long data string for the substitution variable NOTE, and then a call to XQLExec.  Another workaround is to use the Primitive call (xInsert) to insert any long data.
  24113.  
  24114.     As a final note, this limitation also exists in XQLI, since it is making calls to XQLCompile.
  24115.  
  24116.     Tue  4-Jun-91  9:35am    Linda Anderson ADDENDUM:
  24117.  
  24118.     We already mentioned how to insert long variable length data (more than 255 bytes) at the XQL Manager level by utilizing substitution variables.  This limitation also exists in regards to updating long variable length data (more than 255 bytes).  Unfortunately, the substitution workaround does not work in this case.  This update can only be accomplished at the XQL Primitive level using the xUpdate function.  The only alternative at the XQL Manager level is to delete the record and reinsert it with the changed variable length portion. This may need to be done inside a transaction to insure logical data integrity, depending on the application.
  24119.  
  24120.     This information pertains to version 2.11 of XQL.
  24121.  
  24122.  
  24123.  
  24124.  
  24125. FYI:    Bug In WordPerfect Office Utility NOTIFY.
  24126.                                      FYI
  24127.  
  24128. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24129.  
  24130.           TITLE:    Bug In WordPerfect Office Utility NOTIFY.
  24131.    DOCUMENT ID#:    FYI.P.9477
  24132.            DATE:    19MAY91
  24133.         PRODUCT:    NetWare
  24134. PRODUCT VERSION:    All versions
  24135.      SUPERSEDES:    NA
  24136.  
  24137.         SYMPTOM:    Error:"Reading network drive f:".
  24138.  
  24139. ISSUE/PROBLEM
  24140.  
  24141.     When using WP Office on the Network customer randomly gets error: "Reading network drive f:".
  24142.  
  24143. SOLUTION
  24144.  
  24145.     There is a problem using WordPerfect Office and the "NOTIFY" utility dated 6-14-90. Call 1-800-321-3253 and get the updated version.
  24146.  
  24147.  
  24148.  
  24149.  
  24150. FYI:    Checking Packets Routed In NetWare v2.2
  24151.                                      FYI
  24152.  
  24153. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24154.  
  24155.           TITLE:    Checking Packets Routed In NetWare v2.2
  24156.    DOCUMENT ID#:    FYI.P.9512
  24157.            DATE:    18MAY91
  24158.         PRODUCT:    NetWare
  24159. PRODUCT VERSION:    v2.2
  24160.      SUPERSEDES:    NA
  24161.  
  24162.         SYMPTOM:    Checking packets routed by each lan card.  Documentation says it can be done, but it cannot.
  24163.  
  24164. ISSUE/PROBLEM
  24165.  
  24166.     In the NetWare v2.2 Installing/Maintaining the network on page 247 there is a documentation error.  Under the topic 'LANs' it states to check the LAN I/O statistics if your network is not performing well and see if one LAN is getting more packets routed than the other. In NetWare v2.2 FCONSOLE it gives you total packets routed not packets routed by each lan like NetWare v3.11 does. So there is no way to check packets routed by each LAN.
  24167.  
  24168. SOLUTION
  24169.  
  24170.     This error has been reported to Documentation.
  24171.  
  24172.  
  24173.  
  24174.  
  24175. FYI:    COPY, NCOPY And Foxbase Sort Hang Server.
  24176.                                      FYI
  24177.  
  24178. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24179.  
  24180.           TITLE:    COPY, NCOPY And Foxbase Sort Hang Server.
  24181.    DOCUMENT ID#:    FYI.P.9516
  24182.            DATE:    17MAY91
  24183.         PRODUCT:    NetWare
  24184. PRODUCT VERSION:    v2.2
  24185.      SUPERSEDES:    NA
  24186.  
  24187.         SYMPTOM:    COPY, NCOPY And Foxbase-Sort hang server.
  24188.  
  24189. ISSUE/PROBLEM
  24190.  
  24191.     Compaq 386/20e with 3c505 (2012) ,8MB RAM and Adaptec SCSI controller (mirroring). After upgrading to v2.2 server would hang when coping files or running foxbase's sort utility.
  24192.  
  24193. SOLUTION
  24194.  
  24195.     We discovered that if we linked and configured NetWare v2.2 with the LAN driver (3.1EC) that came with v2.15 and didn't use (4.33EC) shipped with v2.2 the problems went away.  He was also using Disk Manager N v3.0. AHA.DSK 3199 1-22-90 V2.0 1542/1640 AHA.OBJ 15697 1-22-90
  24196.  
  24197.  
  24198.  
  24199.  
  24200. FYI:    LOGIN Does Not Indicate Why Passwords Expire
  24201.                                      FYI
  24202.  
  24203. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24204.  
  24205.           TITLE:    LOGIN Does Not Indicate Why Passwords Expire
  24206.    DOCUMENT ID#:    FYI.P.9515
  24207.            DATE:    17MAY91
  24208.         PRODUCT:    NetWare
  24209. PRODUCT VERSION:    v3.11
  24210.      SUPERSEDES:    NA
  24211.  
  24212.         SYMPTOM:    LOGIN does not indicate why passwords expire
  24213.  
  24214. ISSUE/PROBLEM
  24215.  
  24216.     Login can not indicate why a password has expired.  For example, a customer who changed the required length of the password complained because the users who subsequently logged into the file server received the error message "Password for user username on server servername has expired".  He wanted them to get a message saying that the require password length had changed and that they needed to increase the length of their password.
  24217.  
  24218. SOLUTION
  24219.  
  24220.     This can't be fixed because there is no tracking of why a password has expired, only that it has expired.  Therefore, LOGIN.EXE can't determine why the password has expired.  It will return the same error listed above to a user whose password has expired for any reason.
  24221.  
  24222.  
  24223.  
  24224.  
  24225. FYI:    Scrambled Cold Boot Loader.
  24226.                                      FYI
  24227.  
  24228. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24229.  
  24230.           TITLE:    Scrambled Cold Boot Loader.
  24231.    DOCUMENT ID#:    FYI.P.9513
  24232.            DATE:    17MAY91
  24233.         PRODUCT:    NetWare
  24234. PRODUCT VERSION:    v2.2
  24235.      SUPERSEDES:    NA
  24236.  
  24237.         SYMPTOM:    Server will boot once after replacing track zero information, then it won't ever load the OS again on successive boots.
  24238.  
  24239. ISSUE/PROBLEM
  24240.  
  24241.     Customer linked and configured for wrong base I/O. He said the first time he boots it will find NET$OS.EXE but every time after it won't even begin to load which makes him believe the cold boot loader is scrambled. He also said install would hang when he tried to reload NET$OS.EXE. He used a Tiara 16bit arcnet card. The card was set for base I/0 280. He linked and configured for base I/0 2E0.
  24242.  
  24243. SOLUTION
  24244.  
  24245.     Customer had to run ZTEST on the drive.  Then reinstall NetWare v2.2, And set the Base I/O to 2EOh.
  24246.  
  24247.  
  24248.  
  24249.  
  24250. FYI:    Btrieve for Windows v5.10 and Stack Usage
  24251.                                      FYI
  24252.  
  24253. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  24254.  
  24255.           TITLE:    Btrieve for Windows v5.10 and Stack Usage
  24256.     DOCUMENT ID:    FYI.A.1817
  24257.            DATE:    17MAY91
  24258.         PRODUCT:    Btrieve
  24259. PRODUCT VERSION:    NA
  24260.      SUPERSEDES:    NA
  24261.  
  24262.         SYMPTOM:    NA
  24263.  
  24264. ISSUE/PROBLEM
  24265.  
  24266.     Recently a customer was concerned about the amount of stack his program should allocate in order to accommodate the Btrieve DLL.  Because we share the applications stack this may be a concern to some customers.  However we occupy a minimal amount of stack space, approximately 500 bytes. The suggested (Microsoft Windows) stack size is 6000 and will accommodate most applications.
  24267.  
  24268.  
  24269.  
  24270.  
  24271. FYI:    Outstanding NCP Directory Search Limit
  24272.                                      FYI
  24273.  
  24274. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24275.  
  24276.           TITLE:    Outstanding NCP Directory Search Limit
  24277.    DOCUMENT ID#:    FYI.A.1615
  24278.            DATE:    17MAY91
  24279.         PRODUCT:    NA
  24280. PRODUCT VERSION:    NA
  24281.      SUPERSEDES:    NA
  24282.  
  24283.         SYMPTOM:    NA
  24284.  
  24285. ISSUE/PROBLEM
  24286.  
  24287.     Problem:  Console message "You have exceeded your outstanding NCP directory search limits" or directories not showing up using programs that recursively search directories for files (like Norton File Finder).  This has only been a problem under NetWare v3.0 and v3.1.
  24288.  
  24289.     Solution:
  24290.  
  24291.     a)    Increase the limit at the server console by typing:
  24292.  
  24293.         SET MAXIMUM OUTSTANDING NCP SEARCHES=1000
  24294.  
  24295.         This will increase to the maximum the number of outstanding NCP searches that the server can handle.
  24296.  
  24297.     b)    Re-write the search algorithm in the program to save off directories onto a "stack" and finish the find-next calls until failure. The algorithm should then change into each subdirectory and repeat the process (usually recursively)...see me for sample source code.
  24298.  
  24299.     Reason:
  24300.  
  24301.     Typically, when a program recursively searches directories for a file, it jumps into a directory as soon as it finds it and begins another find-first/find-next within that directory, and so on.  The information for the find-first/find-next operations is partially stored at the file server (in an "NCP search buffer") and is only cleared when a find-next fails or when the task that began the find-first ends.  Therefore, when the typical file-finder gets deep into the directories, many of these "NCP search buffers" remain in use.  Since the default for this count is only 51, and since the count includes all stations, and since a find-first/find-next is used even when DOS needs to load a program, these buffers can really add up.  That is why one station may only go 8 directories deep to re-produce the problem.  With 8 buffers for directories, one for files, and one for running the program adding up to 10 buffers, this may not seem like much, but all the stations must be taken into account.  With this scenario, 6 stations would need 60 buffers which would overload the default max of 51.
  24302.  
  24303.  
  24304.  
  24305.  
  24306. FYI:    Seek Past EOF Bug
  24307.                                      FYI
  24308.  
  24309. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24310.  
  24311.           TITLE:    Seek Past EOF Bug
  24312.    DOCUMENT ID#:    FYI.A.1614
  24313.            DATE:    17MAY91
  24314.         PRODUCT:    NA
  24315. PRODUCT VERSION:    NA
  24316.      SUPERSEDES:    NA
  24317.  
  24318.         SYMPTOM:    NA
  24319.  
  24320. ISSUE/PROBLEM
  24321.  
  24322.     There is a bug in **ANY** version of the shell prior to v3.01 rev E (this includes ANET versions as well) that has to do with cache buffers and seeking past end-of-file (EOF).
  24323.  
  24324.     For example, if a program were to:
  24325.          1) create a new file
  24326.          2) seek to position 1, write the letter 'A'
  24327.          3) seek to position 3, write the letter 'C'
  24328.          4) seek to position 2 and write the letter 'B'
  24329.          5) seek to position 3 and read (will obtain 'C')
  24330.          6) seek to position 2 and read
  24331.             (here he should read 'B' but instead reads 0)
  24332.  
  24333.     When a program seeks past EOF and writes data at that location, the part of the file that is between the old EOF and the new EOF is filled with zeros. When these versions of the shell had cache buffers on (the default) the cache-buffer algorithm would get confused and think nothing had been written into the new 0'd space. A subsequent close and reopen of the file revealed that the letter 'B' had, in fact, been written.  The close and re-open would clear the cache buffer(s) for that file.  Any operation(s) that would over-write the cache buffer(s) for that file would allow the seek/read to work correctly from then on.
  24334.  
  24335.     The work-around to this problem is to a) Upgrade to v3.01 rev E or later shells or b) Turn cache buffers off by adding the line:
  24336.  
  24337.        CACHE BUFFERS=0
  24338.  
  24339.     to the SHELL.CFG or NET.CFG file.
  24340.  
  24341.     XMS and EMS flavors of these shells were not effected because cache buffers were not implemented in these shells until rev E.
  24342.  
  24343.  
  24344.  
  24345.  
  24346. FYI:    Backing Up NetWare Ready Configuration
  24347.                                      FYI
  24348.  
  24349. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24350.  
  24351.           TITLE:    Backing Up NetWare Ready Configuration
  24352.    DOCUMENT ID#:    FYI.P.9514
  24353.            DATE:    16MAY91
  24354.         PRODUCT:    NetWare
  24355. PRODUCT VERSION:    v2.2
  24356.      SUPERSEDES:    NA
  24357.  
  24358.         SYMPTOM:    Backing Up NetWare Ready Configuration
  24359.  
  24360. ISSUE/PROBLEM
  24361.  
  24362.     I have a customer that wants to back up the NetWare Ready Configuration Table on his Seagate WREN 4 hard drive.  He says there is an option in DISKSET that will allow you to do this.  As he was doing this, it prompted him to insert a 3rd party diskette.  None of the disks he tried seemed to work.  ADIC told him to label a diskette "DATADISK", insert it, and then the information would be backed up onto the diskette.
  24363.  
  24364.     This customer wants to be sure he doesn't destroy any data, so he has asked if Novell can verify this for him.
  24365.  
  24366. SOLUTION
  24367.  
  24368.     Customers should be very careful when using this option.  The drive that the NetWare Ready configuration is restored to MUST be completely identical.  If it is not, when the info. is restored, the size of the drive will be defined incorrectly - causing lots of problems.
  24369.  
  24370.  
  24371.  
  24372.  
  24373. FYI:    Problems Using Backup VAP Running BUCONFIG
  24374.                                      FYI
  24375.  
  24376. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24377.  
  24378.           TITLE:    Problems Using Backup VAP Running BUCONFIG
  24379.    DOCUMENT ID#:    FYI.P.9511
  24380.            DATE:    16MAY91
  24381.         PRODUCT:    NetWare
  24382. PRODUCT VERSION:    v2.2
  24383.      SUPERSEDES:    NA
  24384.  
  24385.         SYMPTOM:    NA
  24386.  
  24387. ISSUE/PROBLEM
  24388.  
  24389.     Customer trying to use the Backup VAP.  When running BUCONFIG to setup his configuration the configuration option number wasn't changing.  BUSHOW showed the option still 0.
  24390.  
  24391. SOLUTION
  24392.  
  24393.     In the BUCONFIG.BAT file the %2 needs to be changed to %1.  Then BUCONFIG will work.
  24394.     The document file for the backup.vap for v2.2 that is in 22BKUP.ZIP states that you need to use BUCONFIG to change the configuration option of the backup.vap. This is a batch file that uses Dconfig to perform this function. This could obviously be performed without the batch file by simply typing:
  24395.  
  24396.         DCONFIG BACKUP.VP0 OTHER:TAPE,n; C1:4,0
  24397.  
  24398.     Where "n" is the configuration option.  This will return the error "Warning: Specified disk not found: C1:4,0" This message can be ignored.
  24399.  
  24400.  
  24401.  
  24402.  
  24403. FYI:    Exceeding NCP Dir Search Limits
  24404.                                      FYI
  24405.  
  24406. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24407.  
  24408.           TITLE:    Exceeding NCP Dir Search Limits
  24409.    DOCUMENT ID#:    FYI.P.9510
  24410.            DATE:    16MAY91
  24411.         PRODUCT:    NetWare
  24412. PRODUCT VERSION:    v3.11
  24413.      SUPERSEDES:    NA
  24414.  
  24415.         SYMPTOM:    "You exceeded your outstanding NCP directory search limits" error at the WorkStation.
  24416.  
  24417. ISSUE/PROBLEM
  24418.  
  24419.     In the README.311 file that comes on the SYSTEM-1 disk in NetWare v3.11, it says that some applications who do not handle their searches correctly can cause the error "You exceeded your outstanding NCP directory search limits" at the console.  It appears that Windows 3.0 may have this problem.  This error seems to be generated in some cases when the user is doing an auto discover for windows apps in the installation process.  This process goes out to all drives and searches them for valid windows applications.
  24420.  
  24421. SOLUTION
  24422.  
  24423.     It seems that you can either increase the maximum NCP directory searches or you can ignore the warning and windows may not find a couple of your apps.  Just a note though, the readme says increasing the max takes 24 bytes of RAM at the FS per directory per user.  So, if the max is 100 directories and there are 250 users, the FS needs 600K just for the search tables.
  24424.  
  24425.  
  24426.  
  24427.  
  24428. FYI:    Slow Or No Printing.  NetWare v2.2 Core Printing
  24429.                                      FYI
  24430.  
  24431. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24432.  
  24433.           TITLE:    Slow Or No Printing.  NetWare v2.2 Core Printing
  24434.    DOCUMENT ID#:    FYI.P.9509
  24435.            DATE:    16MAY91
  24436.         PRODUCT:    NetWare
  24437. PRODUCT VERSION:    v2.2
  24438.      SUPERSEDES:    NA
  24439.  
  24440.         SYMPTOM:    Slow printing or no printing at all.
  24441.  
  24442. ISSUE/PROBLEM
  24443.  
  24444.     Using core printing services, jobs sent to the LPT1 printer off the file server would take several minutes to print and some small jobs did not print at all.
  24445.  
  24446. SOLUTION
  24447.  
  24448.     After verifying that his configuration was correctly set up we deleted the print queue and recreated them.  Printing now works fine.
  24449.  
  24450.  
  24451.  
  24452.  
  24453. FYI:    Power Basic Btrieve Support
  24454.                                      FYI
  24455.  
  24456. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  24457.  
  24458.           TITLE:    Power Basic Btrieve Support
  24459.     DOCUMENT ID:    FYI.A.1215
  24460.            DATE:    16MAY91
  24461.         PRODUCT:    Btrieve
  24462. PRODUCT VERSION:    NA
  24463.      SUPERSEDES:    NA
  24464.  
  24465.         SYMPTOM:    NA
  24466.  
  24467. ISSUE/PROBLEM
  24468.  
  24469.     As some of you may know, Borland's Turbo Basic is now owned and marketed by Spectra Publishing as Power Basic. We do not currently support an interface for Power Basic but Spectra has one which can be downloaded from their bulletin board.
  24470.  
  24471.     Bulletin Board #    :  813-625-1721
  24472.     Public Domain File  :  BTRIEVE.ZIP
  24473.  
  24474.     If developers have problems with the interface, have them contact Spectra's Technical Support: 813-625-1172.
  24475.  
  24476.  
  24477.  
  24478.  
  24479. FYI:    Connecting IBM AS/400 to an Existing Token Ring
  24480.                                      FYI
  24481.  
  24482. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24483.  
  24484.           TITLE:    Connecting IBM AS/400 to an Existing Token Ring
  24485.    DOCUMENT ID#:    FYI.P.9507
  24486.            DATE:    15MAY91
  24487.         PRODUCT:    NetWare
  24488. PRODUCT VERSION:    v2.15 , v2.2 , v3.1 , v3.11
  24489.      SUPERSEDES:    NA
  24490.  
  24491.         SYMPTOM:    NA
  24492.  
  24493. ISSUE/PROBLEM
  24494.  
  24495.     Connecting IBM AS/400 via Token Ring
  24496.  
  24497. SOLUTION
  24498.  
  24499.     When connecting a AS/400 directly to an existing token ring, use a product called PC Support.  This allows pc emulation.  You must configure the AS/400 and configure PC Support, so in essence they both create what appears to the server(s) as a single Token Ring node.  The user specifies the node address. The AS/400 can then communicate and the server(s) don't realize anything is different in the environment.
  24500.  
  24501.  
  24502.  
  24503.  
  24504. FYI:    Error Reading Boot Image Disk File
  24505.                                      FYI
  24506.  
  24507. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24508.  
  24509.           TITLE:    Error Reading Boot Image Disk File
  24510.    DOCUMENT ID#:    FYI.P.9506
  24511.            DATE:    15MAY91
  24512.         PRODUCT:    NetWare
  24513. PRODUCT VERSION:    v2.2
  24514.      SUPERSEDES:    NA
  24515.  
  24516.         SYMPTOM:    Error Reading Boot Image Disk File
  24517.  
  24518. ISSUE/PROBLEM
  24519.  
  24520.     Customer had just upgraded from NetWare v2.15c to v2.2 and had ran DOSGEN for his diskless work stations. This seemed to run fine but at boot up of the node he got the above error. Running a Samsung Ethernet adapter v1.04 and DOS 5.0
  24521.  
  24522. SOLUTION
  24523.  
  24524.     Had him try another version of DOS to no avail.   Ended up to be a bad prom on the card.  He replaced the remote reset prom and the work station booted up fine.
  24525.  
  24526.  
  24527.  
  24528.  
  24529. FYI:    Loading Second ISADISK Driver
  24530.                                      FYI
  24531.  
  24532. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24533.  
  24534.           TITLE:    Loading Second ISADISK Driver
  24535.    DOCUMENT ID#:    FYI.P.9505
  24536.            DATE:    15MAY91
  24537.         PRODUCT:    NetWare
  24538. PRODUCT VERSION:    v3.11
  24539.      SUPERSEDES:    NA
  24540.  
  24541.         SYMPTOM:    INSTALL recognizes the drive but cannot partition it.
  24542.  
  24543. ISSUE/PROBLEM
  24544.  
  24545.     The customer had a Compaq 386-25 with an internal 300mb ESDI drive.  He added Compaq's external 650mb (Maxtor) drive with controller.  When he went into install, NetWare would appear to recognize the drive but he was unable to partition it.
  24546.  
  24547. SOLUTION
  24548.  
  24549.     The customer called Compaq and they told him to type "load ISADISK /L" when loading the second ISADISK driver.
  24550.  
  24551.  
  24552.  
  24553.  
  24554. FYI:    Printing Problems With DTK PT1-217 Card And NE2000
  24555.                                      FYI
  24556.  
  24557. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24558.  
  24559.           TITLE:    Printing Problems With DTK PT1-217 Card And NE2000
  24560.    DOCUMENT ID#:    FYI.P.9503
  24561.            DATE:    15MAY91
  24562.         PRODUCT:    NetWare
  24563. PRODUCT VERSION:    v2.2
  24564.      SUPERSEDES:    NA
  24565.  
  24566.         SYMPTOM:    Workstation would hang when attempting to print.
  24567.  
  24568. ISSUE/PROBLEM
  24569.  
  24570.     With the computer (DTK Mod.2030, a 386/20) logged into the network, it would hang as soon as the first print job sent to LPT1 was finished.  With IPX and NET4 loaded but the computer NOT logged in, the user could work and print until executing "f:<Enter>", at which point the computer would hang.
  24571.  
  24572. SOLUTION
  24573.  
  24574.     In the workstation, the user had set the NE2000 I/O address to something other than the default of 300h.  Reset the NE2000 to its defaults, reran WSGEN, and printer and network began to work in gratifying harmony, as advertised.  Chances are it was set to I/O 360, which interferes with LPT1's I/O address of 378.
  24575.  
  24576.  
  24577.  
  24578.  
  24579. FYI:    VAPs and NetWare 2.2
  24580.                                      FYI
  24581.  
  24582. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24583.  
  24584.           TITLE:    VAPs and NetWare 2.2
  24585.    DOCUMENT ID#:    FYI.A.3213
  24586.            DATE:    15MAY91
  24587.         PRODUCT:    NA
  24588. PRODUCT VERSION:    NA
  24589.      SUPERSEDES:    NA
  24590.  
  24591.         SYMPTOM:    NA
  24592.  
  24593. ISSUE/PROBLEM
  24594.  
  24595.     There have been a few FYI'S  sent out on the additional connections that are made available to a VAP in version 2.2 of NetWare. I would like to remind everyone this means that those 100 connection arrays people currently are keeping in memory may not be big enough now. If they are using a VAP's connection number as an index into this array it may cause you a little problem. If the VAP's connection is 103 it will index past the end of the array. Look out for this.
  24596.  
  24597.  
  24598.  
  24599.  
  24600. FYI:    NetWare for SAA v1.1
  24601.                                      FYI
  24602.  
  24603. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24604.  
  24605.           TITLE:    NetWare for SAA v1.1
  24606.    DOCUMENT ID#:    FYI.A.2811
  24607.            DATE:    15MAY91
  24608.         PRODUCT:    NA
  24609. PRODUCT VERSION:    NA
  24610.      SUPERSEDES:    NA
  24611.  
  24612.         SYMPTOM:    NA
  24613.  
  24614. ISSUE/PROBLEM
  24615.  
  24616.     If a customer wants to write a NetWare LU6.2 application as an NLM in NetWare v3.11 to communicate with an IBM host, he can do that under NetWare for SAA v1.1.  This is still in Beta.  But NetWare for SAA v1.0 is already out and supports up to 64 host sessions, which can be any combination of LU Types 1 and 3 (Printer Session), LU Type 2 (Terminal Display Session) and LU 6.2 (Peer-to-Peer Session). Version 1.0 doesn't have the capability of loading a Transaction Program as an NLM.  NetWare for SAA v1.1 will support this feature with 254 sessions.
  24617.  
  24618.  
  24619.  
  24620.  
  24621. FYI:    Windows SDK 1.2.1, IsV3
  24622.                                      FYI
  24623.  
  24624. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24625.  
  24626.           TITLE:    Windows SDK 1.2.1, IsV3
  24627.    DOCUMENT ID#:    FYI.A.2612
  24628.            DATE:    15MAY91
  24629.         PRODUCT:    NA
  24630. PRODUCT VERSION:    NA
  24631.      SUPERSEDES:    NA
  24632.  
  24633.         SYMPTOM:    NA
  24634.  
  24635. ISSUE/PROBLEM
  24636.  
  24637.     The IsV3Supported API is in the NWMISC.DLL and the prototype is defined is in NTT.H.
  24638.  
  24639.  
  24640.  
  24641.  
  24642. FYI:    Server Abends Running LANSTOR5 And PS2ESDI Drivers Together
  24643.                                      FYI
  24644.  
  24645. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24646.  
  24647.           TITLE:    Server Abends Running LANSTOR5 And PS2ESDI Drivers Together
  24648.    DOCUMENT ID#:    FYI.P.9502
  24649.            DATE:    14MAY91
  24650.         PRODUCT:    NetWare
  24651. PRODUCT VERSION:    v3.11
  24652.      SUPERSEDES:    NA
  24653.  
  24654.         SYMPTOM:    Server Abends Running LANSTOR5 And PS2ESDI Drivers Together
  24655.  
  24656. ISSUE/PROBLEM
  24657.  
  24658.     Upgrading IBM model 80 w/ 2 320 ESDI drives and an external Storage Dimensions subsystem w/ 2 650 meg SCSI drives from 3.10 to 3.11.  He got the newest LANSTOR5 from SD and was using the PS2ESDI driver from 3.11.  The ESDI controller was set at INT 14.  The SD controller was at INT 15.  The server would run with either driver individually but would Abend if he tried to run them together.  He didn't have the exact error, but it sounded like a interrupt sharing conflict.
  24659.  
  24660. SOLUTION
  24661.  
  24662.     Contacted SD.  Their tech said to set it up like this: Reference the Model 80 as follows:
  24663.  
  24664.      ESDI controller   INT 14
  24665.                        Memory C800
  24666.  
  24667.      SCSI controller   INT 11
  24668.                        BIOS disabled
  24669.                        Base I/O 330
  24670.                        Arbitration level 6
  24671.                        SCSI Address 7
  24672.  
  24673.     The SD subsystem should be set to SCSI address 0.
  24674.  
  24675.     Load SD's NLM this way:
  24676.  
  24677.      LOAD LANSTOR5 BYPASS
  24678.  
  24679.     Customer set it up as shown and it ran great.
  24680.  
  24681.  
  24682.  
  24683.  
  24684. FYI:    Remote Boot And Comspec
  24685.                                      FYI
  24686.  
  24687. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24688.  
  24689.           TITLE:    Remote Boot And Comspec
  24690.    DOCUMENT ID#:    FYI.P.9501
  24691.            DATE:    14MAY91
  24692.         PRODUCT:    NetWare
  24693. PRODUCT VERSION:    v2.2 , v3.11
  24694.      SUPERSEDES:    NA
  24695.  
  24696.         SYMPTOM:    NA
  24697.  
  24698. ISSUE/PROBLEM
  24699.  
  24700.     Customer had all normal (non-remote boot) workstations referencing their respective hard drives to find the COMMAND.COM.   They had the comspec statement in the AUTOEXEC.BAT and no COMMAND.COM loaded on the network drives.  There was no reference to a comspec statement in the login script.
  24701.  
  24702.     They wanted to add a remote boot station and were confused as to how to reference the COMMAND.COM so that the menu would operate properly.  They tried setting it to A:\COMMAND.COM in the remote boot image file.  This presented a problem in that once the station was booted up it actually thought it had an A: drive and prompted for the COMMAND.COM disk to be inserted in drive A:.
  24703.  
  24704. SOLUTION
  24705.  
  24706.     The solution is as follows.  A version of the COMMAND.COM that was used to generate the boot diskette for the remote boot workstation must be placed on the network somewhere, preferably in a dedicated directory. In the login script, an IF-THEN statement should be included as follows:
  24707.  
  24708.             IF P_STATION = "123456789012" SET
  24709.             COMSPEC=SYS:PUBLIC\DISKLESS\COMMAND.COM
  24710.  
  24711.     The above example assumes the following, that 123456789012 is the node address of the workstation that is remote booting and that the appropriate version of COMMAND.COM is indeed located in the SYS:PUBLIC\DISKLESS directory.
  24712.  
  24713.  
  24714.  
  24715.  
  24716. FYI:    PowerVeisa 386/33 GPPE's On Boot Up At 33MHz Speed
  24717.                                      FYI
  24718.  
  24719. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24720.  
  24721.           TITLE:    PowerVeisa 386/33 GPPE's On Boot Up At 33MHz Speed
  24722.    DOCUMENT ID#:    FYI.P.9500
  24723.            DATE:    14MAY91
  24724.         PRODUCT:    NetWare
  24725. PRODUCT VERSION:    v3.11
  24726.      SUPERSEDES:    NA
  24727.  
  24728.         SYMPTOM:    GPPE On Boot Up At 33MHz Speed
  24729.  
  24730. ISSUE/PROBLEM
  24731.  
  24732.     FS would GPPE on boot up at 33MHz but would boot if he slowed down the FS. He also could not get any of the workstations to connect to the server. They would get "A File Server could not be found".
  24733.  
  24734. SOLUTION
  24735.  
  24736.     He contacted ALR who told him that their machine will not run NetWare at high speed without the very best RAM. He had to get Non Korean 80 nanosecond memory SIMMS for it to work at the high speed. Faster memory SIMMS(70 ns) would not work. He also had to replace a flaky cache card in his ALR to get the system to stay up. He solved the "File Server not Found" problem by replacing the RACAL LAN with an NE2000 compatible card. He also had to reduce his memory in his CMOS setup to less than 16 Meg in order to run with the DCB board per ADIC's instructions.
  24737.  
  24738.  
  24739.  
  24740.  
  24741. FYI:    Turbo PASCAL v6.0 Btrieve Interface
  24742.                                      FYI
  24743.  
  24744. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  24745.  
  24746.           TITLE:    Turbo PASCAL v6.0 Btrieve Interface
  24747.     DOCUMENT ID:    FYI.A.1214
  24748.            DATE:    14MAY91
  24749.         PRODUCT:    Btrieve
  24750. PRODUCT VERSION:    NA
  24751.      SUPERSEDES:    NA
  24752.  
  24753.         SYMPTOM:    NA
  24754.  
  24755. ISSUE/PROBLEM
  24756.  
  24757.     A number of people have asked about our supporting a Btrieve interface for the new release of Turbo Pascal. I finally tested the TUR5BTRV.PAS unit that currently ships with the Dos Btrieve and it seems to work fine with the 6.0 compiler. The only gotcha is that you must recompile the pas file into a new .tpu unit file; the .tpu generated by the 5.x compiler is in an old format.
  24758.  
  24759.     Addendum: FYI - Turbo PASCAL XQL Interfaces
  24760.  
  24761.     The same rules apply to the Pascal interfaces for XQL.  The 5.0 interfaces work OK with TP 6.0, but you have to recompile the .TPU files.
  24762.  
  24763.  
  24764.  
  24765.  
  24766. FYI:    Error "Could Not Demand Load SYSCON.EXE"
  24767.                                      FYI
  24768.  
  24769. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24770.  
  24771.           TITLE:    Error "Could Not Demand Load SYSCON.EXE"
  24772.    DOCUMENT ID#:    FYI.P.9498
  24773.            DATE:    13MAY91
  24774.         PRODUCT:    NetWare Requester for OS/2
  24775. PRODUCT VERSION:    v1.3
  24776.      SUPERSEDES:    NA
  24777.  
  24778.         SYMPTOM:    Error "Could Not Demand Load SYSCON.EXE"
  24779.  
  24780. ISSUE/PROBLEM
  24781.  
  24782.     Got the above error message.  The issue is that the LIBPATH is set incorrectly.
  24783.  
  24784. SOLUTION
  24785.  
  24786.     Two solutions for two different customers.
  24787.  
  24788.     1)    Had another directory from an older version of requester that had the NetWare utilities in it.  The libpath was still set to this older directory.
  24789.  
  24790.     2)    The second one had a libpath set to the correct version of utilities and .DLL files.  However, had another path set to a different directory that was picking up a .DLL file from an older requester before it picked up NWCALLS.DLL from 1.3.
  24791.  
  24792.  
  24793.  
  24794.  
  24795. FYI:    Fix For Workstation Hanging Inserting Records In Btrieve
  24796.                                      FYI
  24797.  
  24798. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24799.  
  24800.           TITLE:    Fix For Workstation Hanging Inserting Records In Btrieve
  24801.    DOCUMENT ID#:    FYI.P.9497
  24802.            DATE:    13MAY91
  24803.         PRODUCT:    NetWare
  24804. PRODUCT VERSION:    v3.11
  24805.      SUPERSEDES:    NA
  24806.  
  24807.         SYMPTOM:    BTRIEVE and OS/2: When inserting records into a Btrieve file the WS hangs.
  24808.  
  24809. ISSUE/PROBLEM
  24810.  
  24811.     Software on v3.11 server:
  24812.           BTRIEVE.NLM version 5.15
  24813.           BSPXCOM.NLM version 5.15
  24814.  
  24815.     Software on OS/2 1.2EE workstation:
  24816.           BTRCALLS.DLL version 5.17
  24817.           SPX.SYS version 1.3
  24818.  
  24819.     When inserting records into a Btrieve file with a page size of 1024 or 2048 and record length of 1005 or greater, the workstation will hang when 100 records are inserted.  The workstation produces the following error:
  24820.  
  24821.      Abend:    Exception in Device Driver SPXS
  24822.                Exception Detected An Internal Processing Error At Location #0220:35B2
  24823.  
  24824.      WORKSTATION INFORMATION
  24825.      LAN Driver Type: SPX.SYS v1.3
  24826.  
  24827.     When you're using OS/2 SPX, the include file, SPXCALLS.H statically allocates 2 ECB fragments.  Btrieve uses 3.  BTRCALLS.DLL (workstation end Btrieve file) was changed to allocate 3 ECB fragments.  Fixed in version 5.17a.
  24828.  
  24829. SOLUTION
  24830.  
  24831.     BTRREQ.ZIP on NetWire contains v5.17a of the Btrieve Requester for OS/2.
  24832.  
  24833.  
  24834.  
  24835.  
  24836. FYI:    Abend: Not Enough Memory For Directory Handle Workspace
  24837.                                      FYI
  24838.  
  24839. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24840.  
  24841.           TITLE:    Abend: Not Enough Memory For Directory Handle Workspace
  24842.    DOCUMENT ID#:    FYI.P.9495
  24843.            DATE:    12MAY91
  24844.         PRODUCT:    NetWare
  24845. PRODUCT VERSION:    v2.2
  24846.      SUPERSEDES:    NA
  24847.  
  24848.         SYMPTOM:    After upgrade, getting the error when booting the 2.2 server: Abend: not enough memory for directory handle workspace
  24849.  
  24850. ISSUE/PROBLEM
  24851.  
  24852.     After a NetWare v2.15c to v2.2 upgrade, a customer booted the file server and received this message after the cold boot loader is installed.  The user claimed the server had 4 meg of RAM.  We tried several options to no avail.
  24853.  
  24854. SOLUTION
  24855.  
  24856.     The user finally went back through the file servers setup and determined that although he had 4meg of RAM, the AT was only recognizing 2meg. We changed the parameter in his BIOS to 4meg and rebooted the server successfully.
  24857.  
  24858.  
  24859.  
  24860.  
  24861. FYI:    Arcnet Problems And 16-bit VGA.
  24862.                                      FYI
  24863.  
  24864. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24865.  
  24866.           TITLE:    Arcnet Problems And 16-bit VGA.
  24867.    DOCUMENT ID#:    FYI.P.9496
  24868.            DATE:    10MAY91
  24869.         PRODUCT:    NetWare
  24870. PRODUCT VERSION:    v2.2
  24871.      SUPERSEDES:    NA
  24872.  
  24873.         SYMPTOM:    "Error" Cannot Open QPRO.NET file" when running Quattro Pro
  24874.  
  24875. ISSUE/PROBLEM
  24876.  
  24877.     A customer was using an SMC PC-500 16-bit long board twisted pair with a 16-bit Cardinal VGA 400 board and his Quattro Pro software would give "Error: Cannot Open QPRO.NET File" when he tried to run it.
  24878.  
  24879. SOLUTION
  24880.  
  24881.     He ended up exchanging the 16-bit VGA board with an 8-bit Cardinal VGA 100 card and his application software worked fine.
  24882.  
  24883.  
  24884.  
  24885.  
  24886. FYI:    QBasic Arrays and Btrieve
  24887.                                      FYI
  24888.  
  24889. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  24890.  
  24891.           TITLE:    QBasic Arrays and Btrieve
  24892.     DOCUMENT ID:    FYI.A.3901
  24893.            DATE:    10MAY91
  24894.         PRODUCT:    Btrieve
  24895. PRODUCT VERSION:    NA
  24896.      SUPERSEDES:    NA
  24897.  
  24898.         SYMPTOM:    NA
  24899.  
  24900. ISSUE/PROBLEM
  24901.  
  24902.     While programming in BASIC 7.x, you may want to pass Btrieve an array in the data buffer.  For example, creating a supplemental index requires an array of key segments to be passed in the data buffer.
  24903.  
  24904.     Creating supplemental indexes using BASIC 7.0 and the BC7RBTRV interface has been known to have problems.  Namely, the data buffer seems to get wiped out (the first several bytes in the data buffer contain binary zeros, or other random values).
  24905.  
  24906.     The problem is that an array cannot be passed as the data buffer by just passing the VARPTR of the array name:
  24907.  
  24908.     REM this will not work BTRV(Create_Supp_Index,...VARPTR(Supp_Index_Array), ...)
  24909.  
  24910.     BASIC apparently has some header values associated with arrays.  The above Btrieve call will pass a pointer to the array header values which are garbage to Btrieve.
  24911.  
  24912.     There are two solutions:
  24913.  
  24914.     1)    The easiest is to pass a pointer to the first element in the array:
  24915.  
  24916.         Dim Shared Supp_Index_Array(0 to 2) as key_spec
  24917.  
  24918.         BTRV(Create_Supp_Index,...VARPTR(Supp_Index_Array[0]), ...)
  24919.  
  24920.     2)    The other solution is to "package" the array in a structure and pass a pointer to the structure:
  24921.  
  24922.         Type  Supp_Index_Buffer_Type
  24923.         Supp_Index_Array_Buffer(0 to 2) as key_spec
  24924.         End
  24925.         Dim Shared Supp_Index_Stru as Supp_Index_Buffer_Type
  24926.         :
  24927.         :
  24928.         BTRV(Create_Supp_Index,...VARPTR(Supp_Index_Stru),...)
  24929.  
  24930.     Solution 2 is a little more work, however, the LEN() function can be used to calculate the length of the structure.
  24931.  
  24932.  
  24933.  
  24934.  
  24935. FYI:    Excessive RIP's
  24936.                                      FYI
  24937.  
  24938. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24939.  
  24940.           TITLE:    Excessive RIP's
  24941.    DOCUMENT ID#:    FYI.A.1613
  24942.            DATE:    10MAY91
  24943.         PRODUCT:    NA
  24944. PRODUCT VERSION:    NA
  24945.      SUPERSEDES:    NA
  24946.  
  24947.         SYMPTOM:    NA
  24948.  
  24949. ISSUE/PROBLEM
  24950.  
  24951.     There is a known, long-ago-fixed-bug in ALL of the network drivers dated 8911xx and 8912xx (11/89 - 12/89) that causes excessive RIP (Router Information Packets) to be sent out on the wire.  The following is a history lesson, so if you just want to know the fix, read the last paragraph.
  24952.  
  24953.     At or about this time frame, the guys in Provo testing wrote a program to vigorously test NetWare drivers.  This program alerted the driver developers (and IPX.COM developers) to a number of problems with the drivers and IPX.COM.  One of these problems was corrected by re-writing the drivers (ALL OF THEM) to disable the NIC (Network Interface Card) upon receipt of a packet.  This fix did not introduce any new bugs (they thought) and corrected the problem found by the test program.  Only later did they discover the repercussions of this change.
  24954.  
  24955.     The problem with this change was that when IPX.COM received an SPX connect request, it then responded by making a GetLocalTarget request to determine the transport time.  This call was made before acknowledging the connect request.  But, the NIC had been disabled, so no packets were received in response to the GetLocalTarget request.  Because it received no response, IPX.COM kept sending out requests until it finally decided to make up its own number.  This extended the time between the connect request and its acknowledgment to anywhere between 10 seconds to 2 minutes.
  24956.  
  24957.     The solution to this problem is simple.  Make sure the driver is dated 9001xx (1/90) or later.  All drivers dated 11/89 through 12/89 have this problem.  One possible symptom of this problem is a somewhat slower network.  The excessive RIP's can be seen using Sniffer or LANalyzer.
  24958.  
  24959.  
  24960.  
  24961.  
  24962. FYI:    RPRINTER Hangs Workstation
  24963.                                      FYI
  24964.  
  24965. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  24966.  
  24967.           TITLE:    RPRINTER Hangs Workstation
  24968.    DOCUMENT ID#:    FYI.P.9492
  24969.            DATE:    09MAY91
  24970.         PRODUCT:    NetWare
  24971. PRODUCT VERSION:    v2.2
  24972.      SUPERSEDES:    NA
  24973.  
  24974.         SYMPTOM:    RPRINTER hangs workstation.
  24975.  
  24976. ISSUE/PROBLEM
  24977.  
  24978.     PSERVER VAP running at FS and printer connected to FS prints fine. When RPRINTER is executed at WS, it hangs.
  24979.  
  24980. SOLUTION
  24981.  
  24982.     It was found that the NIC card in the WS had been set to use IRQ7 which is also the default for LPT1 in the printer configuration screen.  Changed the NIC IRQ to 2 and Rprinter worked as expected.
  24983.  
  24984.  
  24985.  
  24986.  
  24987. FYI:    Btrieve v5.10 NULL key or Non-Duplicate Key
  24988.                                      FYI
  24989.  
  24990. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  24991.  
  24992.           TITLE:    Btrieve v5.10 NULL key or Non-Duplicate Key
  24993.     DOCUMENT ID:    FYI.A.1910
  24994.            DATE:    09MAY91
  24995.         PRODUCT:    Btrieve
  24996. PRODUCT VERSION:    5.10
  24997.      SUPERSEDES:    NA
  24998.  
  24999.         SYMPTOM:    NA
  25000.  
  25001. ISSUE/PROBLEM
  25002.  
  25003.     The test performed for this FYI was later run under the VAP, NLM, and DOS environments.  This problem only occurs under the NLM (v5.10).
  25004.  
  25005.     With NON-Duplicate keys that also have a NULL value, the NULL attribute should take precedence over the non-duplicate attribute.  This is not clearly documented in the Btrieve Programmer's Manual (April 1990 edition) and the NetWare Btrieve Library Reference (September 1989 edition).
  25006.  
  25007.     Note: Btrieve v5.10 erroneously returned a status 5 (Duplicate Key Value) when two or more records with null values were inserted into a non-duplicate/NULL key.  Patch #59 corrected this problem where the non-duplicate attribute was getting precedence over the NULL attribute.
  25008.  
  25009.     This problem was found to occur with the Btrieve NLM only; not with the VAP and DOS flavors of Btrieve.
  25010.  
  25011.  
  25012.  
  25013.  
  25014. FYI:    Xtrieve PLUS v4.01a Report Summaries in Forms
  25015.                                      FYI
  25016.  
  25017. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25018.  
  25019.           TITLE:    Xtrieve PLUS v4.01a Report Summaries in Forms
  25020.     DOCUMENT ID:    FYI.A.1909
  25021.            DATE:    09MAY91
  25022.         PRODUCT:    Xtrieve PLUS
  25023. PRODUCT VERSION:    4.01A
  25024.      SUPERSEDES:    NA
  25025.  
  25026.         SYMPTOM:    NA
  25027.  
  25028. ISSUE/PROBLEM
  25029.  
  25030.     Xtrieve PLUS treats forms as individual reports (according to the Glossary in the Report Option section of the Xtrieve PLUS manual).  From this follows the fact that, when adding a Report Summary to an Xtrieve report, Xtrieve will try to position the summary IN the form.
  25031.  
  25032.     If you try to add the summary outside the bounds of the form (for example, on the line following the last line of your form), you will get the error
  25033.  
  25034.     "Field does not fit on report if placed at the specified position."
  25035.  
  25036.     For example, suppose your form contains Field A.  If you want to compute the sum of all the values in Field A, and print it outside the forms (say, at the bottom of the page), you will get this error unless your form is the same dimension as the page.  If forms are smaller than the page size, summaries cannot be printed outside the forms.
  25037.  
  25038.     This behavior was noticed with Xtrieve PLUS v4.01a, and is not documented in the Xtrieve PLUS manual (October 1988 edition).
  25039.  
  25040.  
  25041.  
  25042.  
  25043. FYI:    Basic v7.x and Btrieve v5.x (Stat Op)
  25044.                                      FYI
  25045.  
  25046. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25047.  
  25048.           TITLE:    Basic v7.x and Btrieve v5.x (Stat Op)
  25049.     DOCUMENT ID:    FYI.A.1006
  25050.            DATE:    09MAY91
  25051.         PRODUCT:    Btrieve
  25052. PRODUCT VERSION:    5.X
  25053.      SUPERSEDES:    NA
  25054.  
  25055.         SYMPTOM:    NA
  25056.  
  25057. ISSUE/PROBLEM
  25058.  
  25059.     If you speak with a BASIC v7.x user and they seem to have a problem using Btrieve Stat operation number 15, have them check their OPEN to NUL statement.  Seems that many BASIC programmers have a LEN= as part of the OPEN to NUL statement.  This will set up a memory location for its' records of that length.  When performing a series of stat operations on a number of Btrieve files they will probably run up against one that will try to return more information in their data buffer parameter than what the LEN= is set to in their OPEN to NUL statement.  This can cause one of two things to occur.
  25060.  
  25061.     1)    The stat operation will appear to succeed.  However, shortly after the stat call the application will lock up and require a warm boot.
  25062.  
  25063.          or
  25064.  
  25065.     2)    The stat operation will cause the application to lock up on the stat call itself.
  25066.  
  25067.     Summary:  If you are doing a Btrieve stat, check the OPEN to NUL LEN= to see if it is large enough to hold the stat information for that particular file.
  25068.  
  25069.  
  25070.  
  25071.  
  25072. FYI:    Error "Getting Connection ID 880F"
  25073.                                      FYI
  25074.  
  25075. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25076.  
  25077.           TITLE:    Error "Getting Connection ID 880F"
  25078.    DOCUMENT ID#:    FYI.P.9493
  25079.            DATE:    08MAY91
  25080.         PRODUCT:    NetWare Requester for OS/2
  25081. PRODUCT VERSION:    v1.2
  25082.      SUPERSEDES:    NA
  25083.  
  25084.         SYMPTOM:    Error "Getting Connection ID 880F" when booting the OS/2 Client.
  25085.  
  25086. ISSUE/PROBLEM
  25087.  
  25088.     Customer gets the above error messages when bringing up the presentation manager for OS/2. The hardware configuration worked without problems using DOS.
  25089.  
  25090. SOLUTION
  25091.  
  25092.     His PC110 card was set to IRQ 2 and I/O 2E0. Had to change both the interrupt and I/O address to 3 and 300 respectively.  The conflict was probably with the VGA card. Int 2 and I/O 300 worked somewhat but there were still communications problems.
  25093.  
  25094.  
  25095.  
  25096.  
  25097. FYI:    KBMAP Utility (3270)
  25098.                                      FYI
  25099.  
  25100. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25101.  
  25102.           TITLE:    KBMAP Utility (3270)
  25103.    DOCUMENT ID#:    FYI.A.2810
  25104.            DATE:    08MAY91
  25105.         PRODUCT:    NA
  25106. PRODUCT VERSION:    NA
  25107.      SUPERSEDES:    NA
  25108.  
  25109.         SYMPTOM:    NA
  25110.  
  25111. ISSUE/PROBLEM
  25112.  
  25113.     If you are using KBMAP utility and you want to remap you keyboard to make it 3270 keyboard Novell supports KeyTronic keyboards.  The NetWare 3270 workstation programs do not currently support 122-key keyboards other than KeyTronic & IRMA whose key scan codes differ from those used by KeyTronic &  IRMA. However, the NetWare 3270 tools product contains materials which can be used by an experienced programmer to produce "driver" for any other 122-key keyboard that you might want to support.  As of right now Novell is helping Memorex keyboard company to develop a "driver" to support 122-key and Enhanced Memorex keyboards.  The contact person in Memorex is Jeff Merkey at 214-714-7500.  So if a customer is using Memorex keyboard and wants to remap it as 3270 keyboard you may contact Jeff or let the customer contact him for more info.
  25114.  
  25115.  
  25116.  
  25117.  
  25118. FYI:    Memory Problems (3270)
  25119.                                      FYI
  25120.  
  25121. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25122.  
  25123.           TITLE:    Memory Problems (3270)
  25124.    DOCUMENT ID#:    FYI.A.2809
  25125.            DATE:    08MAY91
  25126.         PRODUCT:    NA
  25127. PRODUCT VERSION:    NA
  25128.      SUPERSEDES:    NA
  25129.  
  25130.         SYMPTOM:    NA
  25131.  
  25132. ISSUE/PROBLEM
  25133.  
  25134.     If you want to load workstation emulator software in High memory you might want  to use a 3rd party software developer called Helix Software Company  (1-800-451-0551) has developed a program called Connecting/ROOM which lets  you load NetWare 3270 LAN Workstation for DOS, without using any conventional  memory for the emulator which saves approximately 150 to 200K of memory.   Supports NetWare 3270 LAN and CUT workstation software.  Connecting/ROOM lets  you relocate ("swap") the entire Novell NetWare 3270 workstation software for  DOS to expanded orextended memory, and hard disk.  This software has been  tested and certified by Novell.
  25135.  
  25136.  
  25137.  
  25138.  
  25139. FYI:    Function 24(3270)
  25140.                                      FYI
  25141.  
  25142. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25143.  
  25144.           TITLE:    Function 24(3270)
  25145.    DOCUMENT ID#:    FYI.A.2808
  25146.            DATE:    08MAY91
  25147.         PRODUCT:    NA
  25148. PRODUCT VERSION:    NA
  25149.      SUPERSEDES:    NA
  25150.  
  25151.         SYMPTOM:    NA
  25152.  
  25153. ISSUE/PROBLEM
  25154.  
  25155.     Function 24 (Query Host Update) in NetWare 3270 High-Level API's returns  a return code of 22 which is Presentation Space Updated even though it's  not updated. The new HLLAPI.exe v2.2.f.9 is a fix for this.
  25156.  
  25157.  
  25158.  
  25159.  
  25160. FYI:    3270 Trace Mechanisms
  25161.                                      FYI
  25162.  
  25163. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25164.  
  25165.           TITLE:    3270 Trace Mechanisms
  25166.    DOCUMENT ID#:    FYI.A.2807
  25167.            DATE:    08MAY91
  25168.         PRODUCT:    NA
  25169. PRODUCT VERSION:    NA
  25170.      SUPERSEDES:    NA
  25171.  
  25172.         SYMPTOM:    NA
  25173.  
  25174. ISSUE/PROBLEM
  25175.  
  25176.     The workstation trace program (WSTRACE.EXE) comes with 3270 toolkit can be run at workstation which has the LU6.2 Protocol Boundary.  This trace facility is extremely useful especially for the Technical Support and Development people in NetWare LU6.2 and NetWare SNA Gateway problem determination.  There are two types of traces that WSTRACE.EXE allows the user to turn on or off: API and MESSAGE.  API traces the request and return of all Verb Records that traverse that particular workstation's Protocol Boundary, and the MESSAGE traces all Message Units that traverse the gateway's Path Control.  If the SNA gateway fails the Message trace option records traffic for all LU Types including LU Type 2 which generates an output file called OUTPUT.PC.
  25177.  
  25178.  
  25179.  
  25180.  
  25181. FYI:    CLib 3.11 on NetWare 3.1
  25182.                                      FYI
  25183.  
  25184. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25185.  
  25186.           TITLE:    CLib 3.11 on NetWare 3.1
  25187.    DOCUMENT ID#:    FYI.A.2611
  25188.            DATE:    08MAY91
  25189.         PRODUCT:    NA
  25190. PRODUCT VERSION:    NA
  25191.      SUPERSEDES:    NA
  25192.  
  25193.         SYMPTOM:    NA
  25194.  
  25195. ISSUE/PROBLEM
  25196.  
  25197.     Well some people do the obvious NOT TO's.  If this happens you will undoubtedly see many 'undefined symbols' when trying to load CLIB.NLM 3.11 on a 3.10 server.  This is so since obviously CLIB 3.11 contains symbols specific to NW 3.11. These symbols are not part of NW 3.10 and voila, that is the problem.
  25198.  
  25199.  
  25200.  
  25201.  
  25202. FYI:    GetServerInformation (CLib 3.11)
  25203.                                      FYI
  25204.  
  25205. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25206.  
  25207.           TITLE:    GetServerInformation (CLib 3.11)
  25208.    DOCUMENT ID#:    FYI.A.2610
  25209.            DATE:    08MAY91
  25210.         PRODUCT:    NA
  25211. PRODUCT VERSION:    NA
  25212.      SUPERSEDES:    NA
  25213.  
  25214.         SYMPTOM:    NA
  25215.  
  25216. ISSUE/PROBLEM
  25217.  
  25218.     Just a reminder for all...the max number of connections returned on this call consists of the total number of connections, including the login connections, and the NLM or VAP connections, respectively.
  25219.  
  25220.     That is : for NW 386 3.11, login connections = 250, NLM connections = 100, so the total returned  would be 350.
  25221.  
  25222.  
  25223.  
  25224.  
  25225. FYI:    CLIB 3.11, mkdir Bug
  25226.                                      FYI
  25227.  
  25228. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25229.  
  25230.           TITLE:    CLIB 3.11, mkdir Bug
  25231.    DOCUMENT ID#:    FYI.A.2609
  25232.            DATE:    08MAY91
  25233.         PRODUCT:    NA
  25234. PRODUCT VERSION:    NA
  25235.      SUPERSEDES:    NA
  25236.  
  25237.         SYMPTOM:    NA
  25238.  
  25239. ISSUE/PROBLEM
  25240.  
  25241.     The CLIB mkdir function has problems when specifying file name extensions on remote calls to NW 286 2.15 & 2.2.
  25242.  
  25243.     This call works correctly otherwise...
  25244.  
  25245.  
  25246.  
  25247.  
  25248. FYI:    Order of Precedence with Btrieve Extended Retrieval
  25249.                                      FYI
  25250.  
  25251. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25252.  
  25253.           TITLE:    Order of Precedence with Btrieve Extended Retrieval
  25254.     DOCUMENT ID:    FYI.A.2006
  25255.            DATE:    08MAY91
  25256.         PRODUCT:    Btrieve
  25257. PRODUCT VERSION:    NA
  25258.      SUPERSEDES:    NA
  25259.  
  25260.         SYMPTOM:    NA
  25261.  
  25262. ISSUE/PROBLEM
  25263.  
  25264.     The "and" and "or" operators used in a filter with the Btrieve extended get and step operations are interpreted in strict left to right order.  Take, for example, the following file which contains records of first and last names that will return a different set of records with an extended get depending on the order of the operators:
  25265.  
  25266.                                RECORDS:
  25267.                                Sally Fields
  25268.                                Fred Fields
  25269.                                Fred Smith
  25270.                                Sally Jones
  25271.                                Sally Smith
  25272.                                Fred Jones
  25273.  
  25274.                 FILTER AND RECORDS RETURNED (with key path = FN):
  25275.  
  25276.     FN=Fred and LN=Smith or FN=Sally     FN=Sally or FN=Fred and LN=Smith
  25277.     returns:                             returns:
  25278.     Fred Smith                           Fred Smith
  25279.                                          Sally Fields
  25280.                                          Sally Jones
  25281.                                          Sally Smith
  25282.  
  25283.     Btrieve evaluates an expression in the filter.  If the expression when applied to the current record is true and the next operator is an  'or', this record is accepted as meeting the filter condition.  If the expression is true and the next operator is an 'and', Btrieve will continue to evaluate each expression until an 'or' is reached, or one of the expressions evaluates to false, or the end of the filter. If an expression is false and the next operator is an 'and', the record is rejected.  If the expression is false and the next operator is 'or' Btrieve will continue and evaluate with the next expression in the filter.
  25284.  
  25285.         Current Expression     Next Operator    Action
  25286.         ------------------     -------------    ------
  25287.         True                       or           Accept
  25288.         False                      or           Continue
  25289.         True                       and          Continue
  25290.         False                      and          Reject
  25291.         True                      (end)         Accept
  25292.         False                     (end)         Reject
  25293.  
  25294.  
  25295.  
  25296.  
  25297. FYI:    Upgrading Xtrieve 3.x to 4.x
  25298.                                      FYI
  25299.  
  25300. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25301.  
  25302.           TITLE:    Upgrading Xtrieve 3.x to 4.x
  25303.     DOCUMENT ID:    FYI.A.2005
  25304.            DATE:    08MAY91
  25305.         PRODUCT:    Xtrieve PLUS
  25306. PRODUCT VERSION:    NA
  25307.      SUPERSEDES:    NA
  25308.  
  25309.         SYMPTOM:    NA
  25310.  
  25311. ISSUE/PROBLEM
  25312.  
  25313.     When a set of DDFs is created through Xtrieve 3.x, a file definition X$Defaults is defined to the dictionary.  The associated Btrieve file, DEFAULTS.DDF, is not created until a 'default' is added to a file in the dictionary through the 'Dictionary - Default' option of Xtrieve.
  25314.  
  25315.     When upgrading from Xtrieve 3.x to 4.x with UPGRADE.EXE, the file DEFAULTS.DDF is converted to ATTRIB.DDF.  If a 'default' has never been added to the dictionary, the DEFAULTS.DDF file does not exist.  But, since X$Defaults is defined to the dictionary, Xtrieve tries to find the file to convert it. When the file is not found, the upgrade procedure fails with errors that a file cannot be found.
  25316.  
  25317.     To upgrade successfully, remove the definition of the defaults file by choosing 'Dictionary - Remove' from the Xtrieve main menu and then choose the definition 'X$Defaults' and remove it.
  25318.  
  25319.  
  25320.  
  25321.  
  25322. FYI:    Peak Accountant Software And Network Printing
  25323.                                      FYI
  25324.  
  25325. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25326.  
  25327.           TITLE:    Peak Accountant Software And Network Printing
  25328.    DOCUMENT ID#:    FYI.P.9491
  25329.            DATE:    07MAY91
  25330.         PRODUCT:    NetWare
  25331. PRODUCT VERSION:    v3.11
  25332.      SUPERSEDES:    NA
  25333.  
  25334.         SYMPTOM:    In Peak Accountant Software, the fourth print job was always garbage.
  25335.  
  25336. ISSUE/PROBLEM
  25337.  
  25338.     Customer was running an accounting software package called Peak Accountant.  If this software is installed and run locally on a workstation, when printing through the network, the fourth print job was always garbage.  This was the only workstation experiencing any printing problems.
  25339.  
  25340.     They took "Peak Accountant" off the local workstation and installed on the network (using the networking options) and it prints fine.  They took it off the file server and put it back on the workstation but took the workstation off the net and dedicated a printer to it, and it prints fine also.
  25341.  
  25342. SOLUTION
  25343.  
  25344.     It cannot be installed locally and still print through the network in some remote instances. If network printing is desired, it must be installed on the network.
  25345.  
  25346.  
  25347.  
  25348.  
  25349. FYI:    Duplicate Node Addresses On NetWare v2.12 And v2.2. Servers
  25350.                                      FYI
  25351.  
  25352. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25353.  
  25354.           TITLE:    Duplicate Node Addresses On NetWare v2.12 And v2.2. Servers
  25355.    DOCUMENT ID#:    FYI.P.9490
  25356.            DATE:    07MAY91
  25357.         PRODUCT:    NetWare
  25358. PRODUCT VERSION:    v2.2 , v2.12
  25359.      SUPERSEDES:    NA
  25360.  
  25361.         SYMPTOM:    Some servers are not being seen on the internetwork.
  25362.  
  25363. ISSUE/PROBLEM
  25364.  
  25365.     I had a customer internetworking an Advanced NetWare v2.12 server and a v2.2 server, but they were having problems logging into one server.  When he did an SLIST from a workstation logged into the 2.12 server, he could only see the 2.12 server.  However, if he logged into the NetWare v2.2 server, he could see both servers from an SLIST.
  25366.  
  25367. SOLUTION
  25368.  
  25369.     In checking for correct lan addresses through config, we noticed that the 2 NE2000 cards in the 2.12 server had the same node address.  After swapping out one of the NE2000 cards, everything was fine and he could log into either server and see both through an slist.
  25370.  
  25371.  
  25372.  
  25373.  
  25374. FYI:    Btrieve v5.10a, Compiled BASIC, OS/2 Interrupt Errors
  25375.                                      FYI
  25376.  
  25377. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25378.  
  25379.           TITLE:    Btrieve v5.10a, Compiled BASIC, OS/2 Interrupt Errors
  25380.     DOCUMENT ID:    FYI.A.1816
  25381.            DATE:    07MAY91
  25382.         PRODUCT:    Btrieve
  25383. PRODUCT VERSION:    5.10A,
  25384.      SUPERSEDES:    NA
  25385.  
  25386.         SYMPTOM:    NA
  25387.  
  25388. ISSUE/PROBLEM
  25389.  
  25390.     Recently I had a customer with a BASIC/Btrieve application.  The application was written and compiled for the DOS environment.  The customer had an OS/2 LANSERVER network and OS/2 EE workstations.  His application ran fine under pure DOS environments but would receive interrupt errors on the OS/2 workstation when trying to create Btrieve files.  He was able to correct the problem by opening the file in his BASIC program as \DEV\NUL instead of as NUL.
  25391.  
  25392.  
  25393.  
  25394.  
  25395. FYI:    NetWare SQL v2.11 / Installing Security on Views
  25396.                                      FYI
  25397.  
  25398. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25399.  
  25400.           TITLE:    NetWare SQL v2.11 / Installing Security on Views
  25401.     DOCUMENT ID:    FYI.A.1815
  25402.            DATE:    07MAY91
  25403.         PRODUCT:    NetWare SQL
  25404. PRODUCT VERSION:    2.11
  25405.      SUPERSEDES:    NA
  25406.  
  25407.         SYMPTOM:    NA
  25408.  
  25409. ISSUE/PROBLEM
  25410.  
  25411.     Presently, there is not a way to install security on views.  Customers may have a situation where they want to make it impossible for the user to overwrite a pre-existing view.  Unfortunately, view level security is not implemented in XQL or NetWare SQL version 2.11.
  25412.  
  25413.     My customer tried creating a group with READ-ONLY access to the X$VIEW table.  However, he found that he could still overwrite existing views and create new views.  The reason for this is very basic.  When the VIEW.DDF is changed, we are not accessing the person's security rights.  The dictionaries are excluded from the security check when a change occurs.
  25414.  
  25415.     In this situation, the best way to implement it is programmatically.  A side note:  if the user has READ-ONLY rights on the NetWare level, it will still not hinder their ability to update the dictionary because NetWare SQL asks for the file to be opened and Btrieve is not aware of any particular user at that time.
  25416.  
  25417.  
  25418.  
  25419.  
  25420. FYI:    Running Jumpers And Configuring NET$OS.EXE without logging in.
  25421.                                      FYI
  25422.  
  25423. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25424.  
  25425.           TITLE:    Running Jumpers And Configuring NET$OS.EXE without logging in.
  25426.    DOCUMENT ID#:    FYI.P.9489
  25427.            DATE:    06MAY91
  25428.         PRODUCT:    NetWare
  25429. PRODUCT VERSION:    v2.15 , v2.2
  25430.      SUPERSEDES:    NA
  25431.  
  25432.         SYMPTOM:    Getting "A file server could not be found".
  25433.  
  25434. ISSUE/PROBLEM
  25435.  
  25436.     The customer had selected the jumpers option in the lan "configuration option" then completed the installation and booted the server with no problem.  He tried to log in and got "A file server could not be found".  He realized he forgot to run JUMPERS.  He looked in the Manual to see how to run Jumpers, "Using the Network Pg 345".  The manual assumes that the network is up and running in order to run jumpers.  The problem is the network cannot be up and running because you have not configured the LAN driver yet.
  25437.  
  25438. SOLUTION
  25439.  
  25440.     He copied the following files to a DOS diskette:
  25441.  
  25442.       FILE           DISKETTE
  25443.  
  25444.       $RUN.OVL       DOSUTIL-1
  25445.       IBM$RUN.OVL      "
  25446.       SYS$ERR.DAT      "
  25447.       SYS$MSG.DAT      "
  25448.       NET$OS.EXE     OSEXE
  25449.       JUMPERS.EXE    WSGEN
  25450.       JUMPERS.HLP    WSGEN
  25451.  
  25452.     He then ran JUMPERS, selected NET$OS and the lan driver configuration he wanted then ran NET$OS from DOS and the server came up.  He then copied the NET$OS.EXE into the SYSTEM directory.
  25453.  
  25454.  
  25455.  
  25456.  
  25457. FYI:    GetDLLVersion API for Windows SDK version 1.2.1
  25458.                                      FYI
  25459.  
  25460. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25461.  
  25462.           TITLE:    GetDLLVersion API for Windows SDK version 1.2.1
  25463.    DOCUMENT ID#:    FYI.A.2608
  25464.            DATE:    06MAY91
  25465.         PRODUCT:    NA
  25466. PRODUCT VERSION:    NA
  25467.      SUPERSEDES:    NA
  25468.  
  25469.         SYMPTOM:    NA
  25470.  
  25471. ISSUE/PROBLEM
  25472.  
  25473.     The GetDLLVersion API has a minor problem when trying to obtain the version from the NWIPXSPX.DLL. It returns a return code of 255 (-1) and all the version numbers of 0's.  It is supposed to return the SDK version number from all the DLL's.  It works for all other DLLs, just not this one.
  25474.  
  25475.  
  25476.  
  25477.  
  25478. FYI:    Option 0 on XQLFetch (XQL v2.11)
  25479.                                      FYI
  25480.  
  25481. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25482.  
  25483.           TITLE:    Option 0 on XQLFetch (XQL v2.11)
  25484.     DOCUMENT ID:    FYI.A.1410
  25485.            DATE:    06MAY91
  25486.         PRODUCT:    XQL
  25487. PRODUCT VERSION:    NA
  25488.      SUPERSEDES:    NA
  25489.  
  25490.         SYMPTOM:    NA
  25491.  
  25492. ISSUE/PROBLEM
  25493.  
  25494.     In version 2.11 of NetWare SQL, there is a bug with option 0 (Fetch Current) of XQLFetch.  It only occurs when the restriction consists of an OR operator joining two expressions, each with the same index involved in an equality comparison.
  25495.  
  25496.        For example:
  25497.        SELECT...WHERE index = 1 OR index = 5.
  25498.  
  25499.     The resulting data returned will not be the correct data for the select statement.  This bug is in development.
  25500.  
  25501.     The workaround is:
  25502.  
  25503.         SELECT ...WHERE (index > 0 AND index <2) or (index > 4 AND index < 6).
  25504.  
  25505.  
  25506.  
  25507.  
  25508. FYI:    Microsoft and VAPs
  25509.                                      FYI
  25510.  
  25511. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25512.  
  25513.           TITLE:    Microsoft and VAPs
  25514.    DOCUMENT ID#:    FYI.A.3710
  25515.            DATE:    03MAY91
  25516.         PRODUCT:    NA
  25517. PRODUCT VERSION:    NA
  25518.      SUPERSEDES:    NA
  25519.  
  25520.         SYMPTOM:    NA
  25521.  
  25522. ISSUE/PROBLEM
  25523.  
  25524.     There is also a switch in Microsoft that indicates DS != SS, it is /Aw.
  25525.  
  25526.  
  25527.  
  25528.  
  25529. FYI:    Additional Info on Undocumented IPX calls
  25530.                                      FYI
  25531.  
  25532. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25533.  
  25534.           TITLE:    Additional Info on Undocumented IPX calls
  25535.    DOCUMENT ID#:    FYI.A.3709
  25536.            DATE:    03MAY91
  25537.         PRODUCT:    NA
  25538. PRODUCT VERSION:    NA
  25539.      SUPERSEDES:    NA
  25540.  
  25541.         SYMPTOM:    NA
  25542.  
  25543. ISSUE/PROBLEM
  25544.  
  25545.     In the DLL, we have the call IPXGetMaxPacketSize.  This call uses function code 1Ah.  This is a call to IPXGetMediaDataSize and gets the information from the driver itself.  The 0Dh call can lie to you because it is a software call to IPX and in the past (sometimes) has been canned and only returned the 576 bytes.  The 1Ah call has existed since 11/89.
  25546.  
  25547.  
  25548.  
  25549.  
  25550. FYI:    Microsoft Overlays
  25551.                                      FYI
  25552.  
  25553. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25554.  
  25555.           TITLE:    Microsoft Overlays
  25556.    DOCUMENT ID#:    FYI.A.3708
  25557.            DATE:    03MAY91
  25558.         PRODUCT:    NA
  25559. PRODUCT VERSION:    NA
  25560.      SUPERSEDES:    NA
  25561.  
  25562.         SYMPTOM:    NA
  25563.  
  25564. ISSUE/PROBLEM
  25565.  
  25566.     The reason that the problem occurs has to do with the way that the overlay manager finds and remembers where its overlay files are stored.  When the first overlay is loaded, the overlay manager searches first in the current directory and subsequently the path.  When the overlay is located, the full path name of the overlay is constructed and remembered so that subsequent loads don't require a path search.  The problem that you observed was caused when the Novell search drives made it appear that the overlay was found in the current directory, when in fact it was found somewhere else. When the overlay manager used a full path name the second time it tried to find the overlay, the search drive function was bypassed and the file was not found, because it wasn't really in the current directory to begin with.
  25567.  
  25568.     The SMODE command was made to deal with this specific problem.  Set the SMODE for the executable file that has overlays to NO SEARCHING.  This will prevent the search drive "feature" from functioning within the context of that particular executable.  The reason 6.0 fixes this is that the overlay manager uses a different strategy for locating its overlays.
  25569.  
  25570.  
  25571.  
  25572.  
  25573. FYI:    Free IPX Block Failed
  25574.                                      FYI
  25575.  
  25576. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25577.  
  25578.           TITLE:    Free IPX Block Failed
  25579.    DOCUMENT ID#:    FYI.A.3316
  25580.            DATE:    03MAY91
  25581.         PRODUCT:    NA
  25582. PRODUCT VERSION:    NA
  25583.      SUPERSEDES:    NA
  25584.  
  25585.         SYMPTOM:    NA
  25586.  
  25587. ISSUE/PROBLEM
  25588.  
  25589.     A customer called and reported to me that his customer was receiving ABEND: Free IPX Block Failed on his 2.15 server when running his  application. After researching and speaking with LANSWER, I learned that  this message is generated when a LAN driver doesn't support NETBIOS.  I  spoke with the customer and sure enough, his application is NETBIOS based.   This problem is normally resolved by upgrading the LAN driver.
  25590.  
  25591.  
  25592.  
  25593.  
  25594. FYI:    Btrieve v5.10 Status 2 Alert!
  25595.                                      FYI
  25596.  
  25597. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  25598.  
  25599.           TITLE:    Btrieve v5.10 Status 2 Alert!
  25600.     DOCUMENT ID:    FYI.A.3302
  25601.            DATE:    03MAY91
  25602.         PRODUCT:    Btrieve
  25603. PRODUCT VERSION:    5.10
  25604.      SUPERSEDES:    NA
  25605.  
  25606.         SYMPTOM:    NA
  25607.  
  25608. ISSUE/PROBLEM
  25609.  
  25610.     We have had quite a few customers report Btrieve status 2s when they are accessing a data file with multiple position blocks on a local DOS drive. In fact, this has been reported as a bug 3 different times for 5.10.  It isn't a bug!  The customer simply needs to load SHARE if accessing a file with multiple position blocks.
  25611.  
  25612.  
  25613.  
  25614.  
  25615. FYI:    SetCurrentConnection not Name Space Sensitive (CLib 3.11)
  25616.                                      FYI
  25617.  
  25618. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25619.  
  25620.           TITLE:    SetCurrentConnection not Name Space Sensitive (CLib 3.11)
  25621.    DOCUMENT ID#:    FYI.A.3108
  25622.            DATE:    03MAY91
  25623.         PRODUCT:    NA
  25624. PRODUCT VERSION:    NA
  25625.      SUPERSEDES:    NA
  25626.  
  25627.         SYMPTOM:    NA
  25628.  
  25629. ISSUE/PROBLEM
  25630.  
  25631.     The SetCurrentConnection API is not name space sensitive.  Remember that when you make this call, it resets your CWV and CWD back to the root of vol SYS. The problem is that it selects the DOS name space directory number instead of the directory number for your current name space.  This problem is applicable to v3.11 NetWare only.
  25632.  
  25633.  
  25634.  
  25635.  
  25636. FYI:    SetCurrentNameSpace Abend (CLib 3.11)
  25637.                                      FYI
  25638.  
  25639. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25640.  
  25641.           TITLE:    SetCurrentNameSpace Abend (CLib 3.11)
  25642.    DOCUMENT ID#:    FYI.A.3107
  25643.            DATE:    03MAY91
  25644.         PRODUCT:    NA
  25645. PRODUCT VERSION:    NA
  25646.      SUPERSEDES:    NA
  25647.  
  25648.         SYMPTOM:    NA
  25649.  
  25650. ISSUE/PROBLEM
  25651.  
  25652.     The SetCurrentNameSpace API in CLib v3.11 can ABEND the server if your CWD is anything other than the root at the time the call is made.  This seems to occur only if your name space is something other than DOS. The workaround  is to chdir() back to the root before you make the SetCurrentNameSpace call.
  25653.  
  25654.  
  25655.  
  25656.  
  25657. FYI:    SetCurrentConnection API(CLIB 3.1 & 3.11)
  25658.                                      FYI
  25659.  
  25660. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25661.  
  25662.           TITLE:    SetCurrentConnection API(CLIB 3.1 & 3.11)
  25663.    DOCUMENT ID#:    FYI.A.3106
  25664.            DATE:    03MAY91
  25665.         PRODUCT:    NA
  25666. PRODUCT VERSION:    NA
  25667.      SUPERSEDES:    NA
  25668.  
  25669.         SYMPTOM:    NA
  25670.  
  25671. ISSUE/PROBLEM
  25672.  
  25673.     SetCurrentConnection resets CWV & CWD to SYS:
  25674.  
  25675.     The SetCurrentConnection API in CLib 3.1 and 3.11 resets the CWV and CWD for a thread group back to the root of vol SYS:.  If you are unaware of this, you may have some problems with the context of any thread within the thread group that makes this API call.  Also worth noting is that LoginToFileServer calls this API to allocate a connection number for you.
  25676.  
  25677.  
  25678.  
  25679.  
  25680. FYI:    3270 Device & Screen Buffers
  25681.                                      FYI
  25682.  
  25683. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25684.  
  25685.           TITLE:    3270 Device & Screen Buffers
  25686.    DOCUMENT ID#:    FYI.A.2806
  25687.            DATE:    03MAY91
  25688.         PRODUCT:    NA
  25689. PRODUCT VERSION:    NA
  25690.      SUPERSEDES:    NA
  25691.  
  25692.         SYMPTOM:    NA
  25693.  
  25694. ISSUE/PROBLEM
  25695.  
  25696.     Device and Screen Buffers comes under our 3270 low level API's which are used in many of the function definitions.  Device buffer is an area in Workstation Control Program memory which has the data representation of IBM's 3270 terminal buffer codes.  The Screen Buffer on the other hand is an area in workstations memory that represents the workstations display screen.  Each position of the display screen is represented by 2 bytes in the Screen Buffer where the first one is the ASCII code for the character to be shown and the second specifies the monochrome or color attribute of the displayed character.  You can use Function-5 (Get Character from Device Buffer) our Low-Level API which returns the character currently at the specified cursor position of the Device Buffer.  The character is translated to ASCII, using the table in KBMAP Utility User's guide.
  25697.  
  25698.  
  25699.  
  25700.  
  25701. FYI:    readdir Bug (CLib 3.11)
  25702.                                      FYI
  25703.  
  25704. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25705.  
  25706.           TITLE:    readdir Bug (CLib 3.11)
  25707.    DOCUMENT ID#:    FYI.A.2607
  25708.            DATE:    03MAY91
  25709.         PRODUCT:    NA
  25710. PRODUCT VERSION:    NA
  25711.      SUPERSEDES:    NA
  25712.  
  25713.         SYMPTOM:    NA
  25714.  
  25715. ISSUE/PROBLEM
  25716.  
  25717.     Here is a new feature, for remote 286 'readdir' calls the 'Transactional' bit is not returned for a file in the DIR structure, field 'd_attr'.  It works correctly for remote 386 calls.
  25718.  
  25719.  
  25720.  
  25721.  
  25722. FYI:    Loading Proteon 4/16 Driver In AUTOEXEC.BAT
  25723.                                      FYI
  25724.  
  25725. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25726.  
  25727.           TITLE:    Loading Proteon 4/16 Driver In AUTOEXEC.BAT
  25728.    DOCUMENT ID#:    FYI.P.9487
  25729.            DATE:    02MAY91
  25730.         PRODUCT:    NetWare
  25731. PRODUCT VERSION:    v3.11
  25732.      SUPERSEDES:    NA
  25733.  
  25734.         SYMPTOM:    Loading the Proteon 4/16 driver in AUTOEXEC.NCF would ignore the speed and cable type specified as parameters.
  25735.  
  25736. ISSUE/PROBLEM
  25737.  
  25738.     The driver is still that delivered for NetWare v3.10.
  25739.  
  25740. SOLUTION
  25741.  
  25742.     Be sure to specify these parameters in uppercase.  Otherwise the parameters are ignored and defaults are taken.  This is a problem well known to Proteon.
  25743.  
  25744.        LOAD <driver name> s=16 c=utp     ! Does NOT work.
  25745.  
  25746.        LOAD <driver name> S=16 C=UTP     ! Does work.
  25747.  
  25748.  
  25749.  
  25750.  
  25751. FYI:    Error "Unable To Open DSKSCTRS.DAT, TTS Not In The VDT"
  25752.                                      FYI
  25753.  
  25754. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25755.  
  25756.           TITLE:    Error "Unable To Open DSKSCTRS.DAT, TTS Not In The VDT"
  25757.    DOCUMENT ID#:    FYI.P.9488
  25758.            DATE:    01MAY91
  25759.         PRODUCT:    NetWare
  25760. PRODUCT VERSION:    v2.2
  25761.      SUPERSEDES:    NA
  25762.  
  25763.         SYMPTOM:    UNABLE TO OPEN DSKSCTRS.DAT, TTS NOT IN THE VDT, No files copied during INSTALL.
  25764.  
  25765. ISSUE/PROBLEM
  25766.  
  25767.     Using an IDE hard drive.
  25768.  
  25769.     Customer was trying to install NetWare v2.2 on this drive and was getting the error above. The NetWare directories had been created and he could boot the server from floppy nondedicated. After logging in from floppy over 600 tmp files were found in the SYSTEM directory. We copied all the files over to SYS: with DOS and everything worked fine.
  25770.  
  25771. SOLUTION
  25772.  
  25773.     After Ztest everything installed fine. Ztest will not ruin IDE drives because drive info is not kept on track 0. Formatting them can.
  25774.  
  25775.  
  25776.  
  25777.  
  25778. FYI:    System Login Script Not Executing Without END Statement
  25779.                                      FYI
  25780.  
  25781. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25782.  
  25783.           TITLE:    System Login Script Not Executing Without END Statement
  25784.    DOCUMENT ID#:    FYI.P.9485
  25785.            DATE:    01MAY91
  25786.         PRODUCT:    NetWare
  25787. PRODUCT VERSION:    NA
  25788.      SUPERSEDES:    NA
  25789.  
  25790.         SYMPTOM:    System login script not executing.
  25791.  
  25792. ISSUE/PROBLEM
  25793.  
  25794.     The system login script was not executing.
  25795.  
  25796. SOLUTION
  25797.  
  25798.     Actually the system login script was basically identical to the default except that he had an if then statement with NO END.  He thought the system login script was executing but it wasn't, the default was. Just like it is supposed to, it ignores the rest of system login script and goes to the user or default.
  25799.  
  25800.  
  25801.  
  25802.  
  25803. FYI:Clock Function
  25804.                                      FYI
  25805.  
  25806. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25807.  
  25808.           TITLE:    Clock Function
  25809.    DOCUMENT ID#:    FYI.A.5102
  25810.            DATE:    30APR91
  25811.         PRODUCT:    NA
  25812. PRODUCT VERSION:    NA
  25813.      SUPERSEDES:    NA
  25814.  
  25815.         SYMPTOM:    NA
  25816.  
  25817. ISSUE/PROBLEM
  25818.  
  25819.     I have used the clock function for benchmarking and discovered that the clock function is deceptive. It returns 1/100'ths seconds but it's granularity is really only 1/18'ths seconds. The memory location in computers that keeps the time is incremented every 1/18'th of a second. The clock function reads this value, converts it to 1/100'ths seconds and returns this converted value.
  25820.  
  25821.     If you look in an 80286 manual for time operations you will see that the 1aH BIOS interrupt can be used to retrieve this value as time and/or date in various formats or the actual value, which is in units of 1/18'ths seconds.
  25822.  
  25823.     I have taken some VAP code that can return the time with an accuracy of 1/64K'th of 1/18'th of a second and converted it for use by DOS executables and NLM's. This accuracy is achieved by reading a count down value that counts from 64K (65535) to 0 every 1/18'th of a second. Every time this count down value hits 0 the value used by the 1aH BIOS interrupt is incremented (thus it is incremented every 1/18'th of a second) and the count down value is reset to 64K.
  25824.  
  25825.  
  25826.  
  25827.  
  25828. FYI:    GetFileServerDateAndTim
  25829.                                      FYI
  25830.  
  25831. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25832.  
  25833.           TITLE:    GetFileServerDateAndTim
  25834.    DOCUMENT ID#:    FYI.A.3315
  25835.            DATE:    30APR91
  25836.         PRODUCT:    NA
  25837. PRODUCT VERSION:    NA
  25838.      SUPERSEDES:    NA
  25839.  
  25840.         SYMPTOM:    NA
  25841.  
  25842. ISSUE/PROBLEM
  25843.  
  25844.     The GetFileServerDateAndTime is documented incorrectly in the NetWare System Calls - DOS, version 1.0.  The documentation states the the 0xE3h function is loaded in AH, it should be 0xE7.
  25845.  
  25846.  
  25847.  
  25848.  
  25849. FYI:    GetPrinterStatus
  25850.                                      FYI
  25851.  
  25852. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25853.  
  25854.           TITLE:    GetPrinterStatus
  25855.    DOCUMENT ID#:    FYI.A.3314
  25856.            DATE:    30APR91
  25857.         PRODUCT:    NA
  25858. PRODUCT VERSION:    NA
  25859.      SUPERSEDES:    NA
  25860.  
  25861.         SYMPTOM:    NA
  25862.  
  25863. ISSUE/PROBLEM
  25864.  
  25865.     The NetWare C Interface - DOS, version 1.20, does not document the GetPrinterStatus function as a NetWare 2.x specific call.  GetPrinterStatus is not supported in the NetWare 3.x environment.  A status of 251 (0xFBh) is returned (UNKNOWN_REQUEST) if the call is made in NetWare 3.x.
  25866.  
  25867.  
  25868.  
  25869.  
  25870. FYI:    NETBIOS & SHELL.CFG
  25871.                                      FYI
  25872.  
  25873. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25874.  
  25875.           TITLE:    NETBIOS & SHELL.CFG
  25876.    DOCUMENT ID#:    FYI.A.3212
  25877.            DATE:    30APR91
  25878.         PRODUCT:    NA
  25879. PRODUCT VERSION:    NA
  25880.      SUPERSEDES:    NA
  25881.  
  25882.         SYMPTOM:    NA
  25883.  
  25884. ISSUE/PROBLEM
  25885.  
  25886.     When you load NetBIOS it looks in its default directory for the file shell.cfg and reads the NetBIOS configuration information. It will not go the another directory to find it. So if you have IPX, shell and shell.cfg on you floppy and then put NetBIOS on the network somewhere. NO changes to NetBIOS configuration made in the shell.cfg on your floppy will effect NetBIOS when it loads. In other words, the current directory.
  25887.  
  25888.  
  25889.  
  25890.  
  25891. FYI:    Microsoft and VAPs
  25892.                                      FYI
  25893.  
  25894. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25895.  
  25896.           TITLE:    Microsoft and VAPs
  25897.    DOCUMENT ID#:    FYI.A.3211
  25898.            DATE:    30APR91
  25899.         PRODUCT:    NA
  25900. PRODUCT VERSION:    NA
  25901.      SUPERSEDES:    NA
  25902.  
  25903.         SYMPTOM:    NA
  25904.  
  25905. ISSUE/PROBLEM
  25906.  
  25907.     The Microsoft compiler assumes the DS and SS are in the same segment when it generates code. Which is usually the case. Unless you are writing a VAP. for the main process it is fine. However if you spawn a child process unless your stack is part of the original data segment you will have problems. There is a switch in Watcom that relaxes this assumption /zu.
  25908.  
  25909.  
  25910.  
  25911.  
  25912. FYI:    Microsoft Link 5.1
  25913.                                      FYI
  25914.  
  25915. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25916.  
  25917.           TITLE:    Microsoft Link 5.1
  25918.    DOCUMENT ID#:    FYI.A.3210
  25919.            DATE:    30APR91
  25920.         PRODUCT:    NA
  25921. PRODUCT VERSION:    NA
  25922.      SUPERSEDES:    NA
  25923.  
  25924.         SYMPTOM:    NA
  25925.  
  25926. ISSUE/PROBLEM
  25927.  
  25928.     I have found that programs compiled and linked with Microsoft that use overlays don't seem to work well if compiled with 5.1. If you have a directory where an executable file is stored in you search mappings, then from somewhere else on the network attempt to run that file. It will find it to start execution, however on the loading of the first overlay it will ask you to insert a disk as it cannot find the executable again. If you recompile and link this same application under 6.0 the problem goes away.
  25929.  
  25930.  
  25931.  
  25932.  
  25933. FYI:    NLM Documentation (fcloseall)
  25934.                                      FYI
  25935.  
  25936. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25937.  
  25938.           TITLE:    NLM Documentation (fcloseall)
  25939.    DOCUMENT ID#:    FYI.A.3209
  25940.            DATE:    30APR91
  25941.         PRODUCT:    NA
  25942. PRODUCT VERSION:    NA
  25943.      SUPERSEDES:    NA
  25944.  
  25945.         SYMPTOM:    NA
  25946.  
  25947. ISSUE/PROBLEM
  25948.  
  25949.     The 3.11 NLM documentation says that fcloseall should close all second level files except stdin, stdout, and stderr. Well in an NLM this is not the case.  If you do an Fcloseall all second level files will be closed.
  25950.  
  25951.  
  25952.  
  25953.  
  25954. FYI:    Compiler Problems (Watcom 8.0 386 Compiler).
  25955.                                      FYI
  25956.  
  25957. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25958.  
  25959.           TITLE:    Compiler Problems (Watcom 8.0 386 Compiler).
  25960.    DOCUMENT ID#:    FYI.A.3208
  25961.            DATE:    30APR91
  25962.         PRODUCT:    NA
  25963. PRODUCT VERSION:    NA
  25964.      SUPERSEDES:    NA
  25965.  
  25966.         SYMPTOM:    NA
  25967.  
  25968. ISSUE/PROBLEM
  25969.  
  25970.     When compiling with the /fpi option the underflow, overflow exception status bits are not being set. The /fpi option says that you can put 80387 code in your program if it detects a 80387 it will use it, otherwise it will call the Emulator functions. This works fine except the exception status bits for overflow and underflow don't get set. (Watcom has this fixed in their next release.  /fpc works fine. The overflow and underflow signals get raised as they should.
  25971.  
  25972.     When most compiler generate a function the first instruction inside the routine ins a push BP. This means that the return address and BP are next to each other on the stack. Some people have made use of this fact to do function trace backs and various other strange things. The Watcom compiler does not do this. It allocates space for some of its local variables on the stack and then pushes BP. BP and the return address are not together on the stack so the above mentioned code no longer functions. I understand with the next release of the Watcom compiler there will be a switch that allows you to specify that you want BP pushed first thing.
  25973.  
  25974.  
  25975.  
  25976.  
  25977. FYI:    Undocumented IPX Call
  25978.                                      FYI
  25979.  
  25980. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  25981.  
  25982.           TITLE:    Undocumented IPX Call
  25983.    DOCUMENT ID#:    FYI.A.3207
  25984.            DATE:    30APR91
  25985.         PRODUCT:    NA
  25986. PRODUCT VERSION:    NA
  25987.      SUPERSEDES:    NA
  25988.  
  25989.         SYMPTOM:    NA
  25990.  
  25991. ISSUE/PROBLEM
  25992.  
  25993.     To determine the maximum packet size your station will handle make the following IPX call.
  25994.  
  25995.                 BX = 0D
  25996.                 (call the IPX entry point)
  25997.                 AX (returns max packet size)
  25998.  
  25999.     This is not an indication of how big a packet the network as a whole will support. It is just information about the station you run it on.
  26000.  
  26001.  
  26002.  
  26003.  
  26004. FYI:    WVIDEO and a Bus Mouse
  26005.                                      FYI
  26006.  
  26007. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26008.  
  26009.           TITLE:    WVIDEO and a Bus Mouse
  26010.    DOCUMENT ID#:    FYI.A.3206
  26011.            DATE:    30APR91
  26012.         PRODUCT:    NA
  26013. PRODUCT VERSION:    NA
  26014.      SUPERSEDES:    NA
  26015.  
  26016.         SYMPTOM:    NA
  26017.  
  26018. ISSUE/PROBLEM
  26019.  
  26020.     Just a note about WVIDEO. If you are using a bus mouse and find that it does not work every time that you go into the debugger, there is a program supplied with the compiler to take care of the problem. The program is called mousefix.exe if you run this program it inits the mouse for use with the debugger.
  26021.  
  26022.  
  26023.  
  26024.  
  26025. FYI:    NetWare 2.2 Memory Requirements
  26026.                                      FYI
  26027.  
  26028. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26029.  
  26030.           TITLE:    NetWare 2.2 Memory Requirements
  26031.    DOCUMENT ID#:    FYI.A.1512
  26032.            DATE:    30APR91
  26033.         PRODUCT:    NA
  26034. PRODUCT VERSION:    NA
  26035.      SUPERSEDES:    NA
  26036.  
  26037.         SYMPTOM:    NA
  26038.  
  26039. ISSUE/PROBLEM
  26040.  
  26041.     A customer recently inquired as to the amount of memory necessary to  run NetWare 2.2.  He was not able to load the Btrieve VAP due to a lack  of memory.  Well, here is the formula for figuring out exactly how  much memory is necessary.
  26042.  
  26043.     Mem Req = [.005 * MB Disk] + 2MB + 2MB (IF ANY VAPS) + 1MB (IF NON-DED)
  26044.  
  26045.  
  26046.  
  26047.  
  26048. FYI:    Btrieve v5.10 Status 95
  26049.                                      FYI
  26050.  
  26051. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26052.  
  26053.           TITLE:    Btrieve v5.10 Status 95
  26054.     DOCUMENT ID:    FYI.A.1507
  26055.            DATE:    30APR91
  26056.         PRODUCT:    Btrieve
  26057. PRODUCT VERSION:    5.10
  26058.      SUPERSEDES:    NA
  26059.  
  26060.         SYMPTOM:    NA
  26061.  
  26062. ISSUE/PROBLEM
  26063.  
  26064.     Recently, I had a customer report a problem with his Btrieve application returning a status 95 on a regular basis.  He was running his application on a Novell network with the Btrieve VAP.  His problem was also only able to be duplicated under Token Ring (Proteon).  Well, his problem was that the ring was so big that the token could not make it back to the workstation before the SPX session was reset.  The customer split the ring into two rings and the status 95 was resolved.
  26065.  
  26066.  
  26067.  
  26068.  
  26069. FYI:    IPXScheduleEvent/IPX 3.x
  26070.                                      FYI
  26071.  
  26072. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26073.  
  26074.           TITLE:    IPXScheduleEvent/IPX 3.x
  26075.    DOCUMENT ID#:    FYI.A.1308
  26076.            DATE:    30APR91
  26077.         PRODUCT:    NA
  26078. PRODUCT VERSION:    NA
  26079.      SUPERSEDES:    NA
  26080.  
  26081.         SYMPTOM:    NA
  26082.  
  26083. ISSUE/PROBLEM
  26084.  
  26085.     With the popularity of Windows and the need for Novell to be compatible, IPX 3.x was born.  IPX 3.x internally, had to change to accommodate IPX/SPX calls.  One such change has to do to with AES socket validation.  Prior to IPX 3.x, older versions would allow programs to schedule an AES event with ScheduleIPXEvent using an ECB that had an invalid (unopened) socket.
  26086.  
  26087.     Validation of the socket field in the ECB is required when running IPX programs under Windows 3.0.  There was a patch called AESCHCK.PAT which removes this validation so that older programs would work this version of IPX.
  26088.  
  26089.     As of 3.02, sockets must be valid for AES calls.
  26090.  
  26091.  
  26092.  
  26093.  
  26094. FYI:    VerifyBinderyObjectPassword & Intruder Detection/Lockout
  26095.                                      FYI
  26096.  
  26097. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26098.  
  26099.           TITLE:    VerifyBinderyObjectPassword & Intruder Detection/Lockout
  26100.    DOCUMENT ID#:    FYI.A.1307
  26101.            DATE:    30APR91
  26102.         PRODUCT:    NA
  26103. PRODUCT VERSION:    NA
  26104.      SUPERSEDES:    NA
  26105.  
  26106.         SYMPTOM:    NA
  26107.  
  26108. ISSUE/PROBLEM
  26109.  
  26110.     If Intruder Detection/Lock is enabled, a call to VerifyBinderyObjectPassword must be successful within the limits specified for a password retry.  Otherwise, Intruder Detection/Lockout will lock that user out for the specified amount of time.
  26111.  
  26112.  
  26113.  
  26114.  
  26115. FYI:    Security & Unique Passwords
  26116.                                      FYI
  26117.  
  26118. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26119.  
  26120.           TITLE:    Security & Unique Passwords
  26121.    DOCUMENT ID#:    FYI.A.1306
  26122.            DATE:    30APR91
  26123.         PRODUCT:    NA
  26124. PRODUCT VERSION:    NA
  26125.      SUPERSEDES:    NA
  26126.  
  26127.         SYMPTOM:    NA
  26128.  
  26129. ISSUE/PROBLEM
  26130.  
  26131.     In SYSCON, if a users account requires that he has a unique password, the user will not be allowed to use a password HE or SHE had used PREVIOUSLY. In other words, uniqueness of a password is placed on the USER not on a uniqueness among other users passwords.
  26132.  
  26133.  
  26134.  
  26135.  
  26136. FYI:    "Invalid Drive Specification".  MicroSoft SQL Server
  26137.                                      FYI
  26138.  
  26139. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26140.  
  26141.           TITLE:    "Invalid Drive Specification".  MicroSoft SQL Server
  26142.    DOCUMENT ID#:    FYI.P.9484
  26143.            DATE:    29APR91
  26144.         PRODUCT:    NetWare
  26145. PRODUCT VERSION:    v3.11
  26146.      SUPERSEDES:    NA
  26147.  
  26148.         SYMPTOM:    After loading the MS SQL server, the WS would get "invalid drive specification" when switching to F:.
  26149.  
  26150. ISSUE/PROBLEM
  26151.  
  26152.     Customer had a NetWare v3.11 FS up and running great. They then loaded a MicroSoft SQL SERVER on the same FS(Computer). After they loaded the SQL server, the WS would get the above error when switching to F:. They tried putting a "lastdrive=e:" in the CONFIG.SYS and it made no difference. They could login from floppy.
  26153.  
  26154. SOLUTION
  26155.  
  26156.     They found out that their LOGIN directory had been deleted, so they recreated it. That only helped partially. They then had to run VREPAIR and everything works great again.
  26157.  
  26158.     Note:Actually, you only have to dismount and remount the volume after recreating the LOGIN directory.
  26159.  
  26160.  
  26161.  
  26162.  
  26163. FYI:    Windows SDK 1.2.1 - IPX immediate address field in ECB:
  26164.                                      FYI
  26165.  
  26166. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26167.  
  26168.           TITLE:    Windows SDK 1.2.1 - IPX immediate address field in ECB:
  26169.    DOCUMENT ID#:    FYI.A.3707
  26170.            DATE:    26APR91
  26171.         PRODUCT:    NA
  26172. PRODUCT VERSION:    NA
  26173.      SUPERSEDES:    NA
  26174.  
  26175.         SYMPTOM:    NA
  26176.  
  26177. ISSUE/PROBLEM
  26178.  
  26179.     The immediate address field, on received IPX packets, is not being copied from DLL's memory into the local ECB's setup by the user.  The field contains all 0's but should contain the SOURCE address of the NODE that sent the packet, if on the local net, otherwise a bridge that routed the packet.  This field may be used for setting up the destination address for ECB's to the send out, although the recommended approach is to use the IPXGetLocalTarget API to setup the immediate address field.
  26180.  
  26181.  
  26182.  
  26183.  
  26184. FYI:    MapDrive
  26185.                                      FYI
  26186.  
  26187. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26188.  
  26189.           TITLE:    MapDrive
  26190.    DOCUMENT ID#:    FYI.A.3313
  26191.            DATE:    24APR91
  26192.         PRODUCT:    NA
  26193. PRODUCT VERSION:    NA
  26194.      SUPERSEDES:    NA
  26195.  
  26196.         SYMPTOM:    NA
  26197.  
  26198. ISSUE/PROBLEM
  26199.  
  26200.     The MapDrive function is not freeing memory allocated from within the function.  MapDrive calls the function GetPathEnvironment which returns the allocated variable PathVariable.  PathVariable is never freed.  The only time this will be noticed is when you are calling MapDrive repetitively. The end result is random error codes, and in the case of my customer, her machine locked up.  The work-around is to insert "free(PathVariable)" statements before all returns in the MapDrive function.
  26201.  
  26202.  
  26203.  
  26204.  
  26205. FYI:    GetVolUsage
  26206.                                      FYI
  26207.  
  26208. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26209.  
  26210.           TITLE:    GetVolUsage
  26211.    DOCUMENT ID#:    FYI.A.3312
  26212.            DATE:    24APR91
  26213.         PRODUCT:    NA
  26214. PRODUCT VERSION:    NA
  26215.      SUPERSEDES:    NA
  26216.  
  26217.         SYMPTOM:    NA
  26218.  
  26219. ISSUE/PROBLEM
  26220.  
  26221.     The GetVolUsage function does not support NetWare block sizes of 64k.  This is because the value returned in the blockSize field of the NWVOL_USAGE structure is a WORD (unsigned integer).  The maximum value that can be stored in a WORD is 65535.  A value of 64k translates to 65536 (64 * 1024). The value returned in the blockSize field is zero, when an integer overflows it wraps back to zero.
  26222.  
  26223.     Work-around:  If the value returned is zero, the block size is actually 64k.
  26224.  
  26225.  
  26226.  
  26227.  
  26228. FYI:    ScanDirEntry
  26229.                                      FYI
  26230.  
  26231. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26232.  
  26233.           TITLE:    ScanDirEntry
  26234.    DOCUMENT ID#:    FYI.A.3311
  26235.            DATE:    24APR91
  26236.         PRODUCT:    NA
  26237. PRODUCT VERSION:    NA
  26238.      SUPERSEDES:    NA
  26239.  
  26240.         SYMPTOM:    NA
  26241.  
  26242. ISSUE/PROBLEM
  26243.  
  26244.     The ScanDirEntry function in the NetWare C Interface - DOS is not functioning properly under NetWare 2.x.  The function fails when used repetitively to search for directories.  Under 2.x a status 152 (VOLUME_DOES_NOT_EXIST) is eventually returned.  This may occur after only scanning two or three directories.   The function performs correctly under 3.x.
  26245.  
  26246.     As a work-around the customer can use the ScanDirectoryInformation under 2.x, unless they are searching for system or hidden files.  If they need to find system or hidden files they will need to use the DOS findfirst, findnext functions.
  26247.  
  26248.  
  26249.  
  26250.  
  26251. FYI:    GetVolUsage
  26252.                                      FYI
  26253.  
  26254. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26255.  
  26256.           TITLE:    GetVolUsage
  26257.    DOCUMENT ID#:    FYI.A.3310
  26258.            DATE:    24APR91
  26259.         PRODUCT:    NA
  26260. PRODUCT VERSION:    NA
  26261.      SUPERSEDES:    NA
  26262.  
  26263.         SYMPTOM:    NA
  26264.  
  26265. ISSUE/PROBLEM
  26266.  
  26267.     The GetVolUsage call that is supposed to work for NW 2.x and NW 3.x does not function properly.  The name is returned as only the first byte of the name. Available disk blocks is returned as a higher number than total disk blocks. The block size is also returned incorrectly.  The work-around is to use the GetVolumeInformation call for NetWare 2.x.
  26268.  
  26269.  
  26270.  
  26271.  
  26272. FYI:    SetDefaultCaptureFlags
  26273.                                      FYI
  26274.  
  26275. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26276.  
  26277.           TITLE:    SetDefaultCaptureFlags
  26278.    DOCUMENT ID#:    FYI.A.3309
  26279.            DATE:    24APR91
  26280.         PRODUCT:    NA
  26281. PRODUCT VERSION:    NA
  26282.      SUPERSEDES:    NA
  26283.  
  26284.         SYMPTOM:    NA
  26285.  
  26286. ISSUE/PROBLEM
  26287.  
  26288.     The flushCaptureTimeoutCount field in the SET_CAPTURE_FLAGS structure must be IntSwapped before making the call.  I have had two people this week call and ask why the timeout is getting set to very high numbers when they only set it for a value of 2 or 3 seconds.  One other thing to remember when making this call is that the value entered is in clock ticks (1/18 of a second), NOT seconds.
  26289.  
  26290.  
  26291.  
  26292.  
  26293. FYI:    ScanBinderyObjectTrusteePath
  26294.                                      FYI
  26295.  
  26296. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26297.  
  26298.           TITLE:    ScanBinderyObjectTrusteePath
  26299.    DOCUMENT ID#:    FYI.A.3308
  26300.            DATE:    24APR91
  26301.         PRODUCT:    NA
  26302. PRODUCT VERSION:    NA
  26303.      SUPERSEDES:    NA
  26304.  
  26305.         SYMPTOM:    NA
  26306.  
  26307. ISSUE/PROBLEM
  26308.  
  26309.     The ScanBinderyObjectTrusteePaths function is defined twice, in two different ways, in the NetWare C Interface - DOS manual.   Bindery Services defines the trusteeAccessMask as a WORD.  Directory Services defines trusteeAccessMask as a char.  A look at the source reveals that the definition in Directory Service is the correct one.  That presents a problem, however, there is no way to get the SUPERVISOR access bit for NetWare 3.x on a user trustee basis.
  26310.  
  26311.  
  26312.  
  26313.  
  26314. FYI:    Btrieve Resets and COBOL
  26315.                                      FYI
  26316.  
  26317. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26318.  
  26319.           TITLE:    Btrieve Resets and COBOL
  26320.     DOCUMENT ID:    FYI.A.3301
  26321.            DATE:    24APR91
  26322.         PRODUCT:    Btrieve
  26323. PRODUCT VERSION:    NA
  26324.      SUPERSEDES:    NA
  26325.  
  26326.         SYMPTOM:    NA
  26327.  
  26328. ISSUE/PROBLEM
  26329.  
  26330.     COBOL programmers need to be aware of the potential dangers of performing Btrieve Resets within their applications.  This is especially true when calling COBOL subprograms.  A Btrieve Reset causes all open Btrieve files to be closed, not just the files opened in the current program.  COBOL, unlike many other languages, allows a called program to remain in memory after it has been called and then returns to the parent application, unless explicitly cancelled.  The memory for the called module remains static until the module is called again.  This is where the danger becomes apparent.  Let's say the programmer performs the following operations:
  26331.  
  26332.     1.    Opens multiple data files main program.
  26333.     2.    Opens a data file in a called subprogram and returns to parent process.
  26334.     3.    Performs operations upon the files in the main program.
  26335.     4.    Issues a Btrieve Reset.
  26336.     5.    Opens additional data files.
  26337.     6.    Calls subprogram once again.  This time he issues a close and then opens another data file and returns to the parent.
  26338.     7.    He inserts a record into one of the data files in the parent program.
  26339.  
  26340.     This is where the file corruption occurred.  When he inserted the record, it was inserted into a completely different file than he intended.  Why? In step 4 he issued a Reset which closed all of his existing data files. In step 5 he opens additional files, followed by closing and opening files in step 6.  The close is what caused the eventual corruption to occur.  He passed an invalid position block to Btrieve.  This file had already been closed and a different file had taken its place when the files were opened in step 5.  He was actually closing a file opened in the main program even though he didn't know it.  The file he closed was the one he eventually wanted to insert a record.  By opening another file in the called program he received the same Btrieve file position for the new file as the one he accidentally closed.  The main program then performs an insert with what it thinks is a valid position block:  unfortunately, it's not.  The record gets inserted into a completely different file.
  26341.  
  26342.     The moral of the story is: COBOL programmers beware of Resets when called subprograms are involved.
  26343.  
  26344.  
  26345.  
  26346.  
  26347. FYI:    LU6.2 Verbs
  26348.                                      FYI
  26349.  
  26350. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26351.  
  26352.           TITLE:    LU6.2 Verbs
  26353.    DOCUMENT ID#:    FYI.A.2805
  26354.            DATE:    24APR91
  26355.         PRODUCT:    NA
  26356. PRODUCT VERSION:    NA
  26357.      SUPERSEDES:    NA
  26358.  
  26359.         SYMPTOM:    NA
  26360.  
  26361. ISSUE/PROBLEM
  26362.  
  26363.     NetWare LU6.2 supports an extensive verb list.  These verbs uses DOS software interrupt similar to the other API's.  A TP (Transaction Program) can issue up to 52 verbs to start, continue, and terminate conversations with another transaction program.  Of these 52 NetWare verbs, 16 are used in basic conversations, 13 are used for mapped conversations, and 15 are control verbs that define physical units (PU's), logical units (LU's), and partner logical units.  The remaining 8 verbs are service verbs that transfer maintenance statistics, convert character strings (ASCII to EBCDIC and back) and invoke tracing mechanisms.  A typical conversation between application subsystems that provide services for the transaction programs is established at both local workstation and remote workstation by issuing ATTACH_PU, ATTACH_LU, ACTIVATE_DLC, and CNOS, which define the physical unit and network names, and local and remote workstation LU names, various system parameters, and modes of conversations.  ACTIVATE_DLC sets up the data link control adapter while CNOS establishes the mode session limit.
  26364.  
  26365.     To terminate conversations between transaction programs, each workstation should issue the verbs CNOS, DETACH_LU and DETACH_PU in the reverse order to the order in which they are issued.
  26366.  
  26367.  
  26368.  
  26369.  
  26370. FYI:    Btrieve 5.10a's Minimum Record Length and Data Compression
  26371.                                      FYI
  26372.  
  26373. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26374.  
  26375.           TITLE:    Btrieve 5.10a's Minimum Record Length and Data Compression
  26376.     DOCUMENT ID:    FYI.A.1107
  26377.            DATE:    24APR91
  26378.         PRODUCT:    Btrieve
  26379. PRODUCT VERSION:    NA
  26380.      SUPERSEDES:    NA
  26381.  
  26382.         SYMPTOM:    NA
  26383.  
  26384. ISSUE/PROBLEM
  26385.  
  26386.     What is the minimum record length a Btrieve file can have?  The standard response is 4 bytes; however, if you have a file with data compression it can be as small as 1 byte.  Files without data compression specified on the create still have a minimum record length of 4 bytes.
  26387.  
  26388.     Compressed data pages in the Btrieve file will contain 1 byte to denote which compression algorithm you may be using, or a delete flag which indicates that the record has been deleted.  Following that first byte, there's a pointer to where the actual record is stored on the variable data page.  Finally, there are potentially two more pointers per duplicate key following the pointer to the variable page.
  26389.  
  26390.     So, if you have a 1 byte fixed length record in a file that was created with data compression, you could be storing more bytes in the file than you bargained for!  (Of course, how many people would have a 1 byte fixed length record - without a variable portion following it?...you never know!!!)
  26391.  
  26392.  
  26393.  
  26394.  
  26395. FYI:    Novell Link/X.25 Router Not Sending Packets
  26396.                                      FYI
  26397.  
  26398. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  26399.  
  26400.           TITLE:    Novell Link/X.25 Router Not Sending Packets
  26401.    DOCUMENT ID#:    FYI.P.9478
  26402.            DATE:    23APR91
  26403.         PRODUCT:    NetWare
  26404. PRODUCT VERSION:    NA
  26405.      SUPERSEDES:    NA
  26406.  
  26407.         SYMPTOM:    Problem with Novell Link/X.25 External Router not recognizing or sending source routing packets.
  26408. ISSUE/PROBLEM
  26409.  
  26410.     Novell's LINK/X.25 product is written by EICON Technologies in Canada. The Router, must be generated Non-Dedicated real mode to allow uploading of the firmware into the EICON card. They tried 2.50, 2.60, and 2.61 drivers and 1988 firmware on the Token-Ring card.
  26411.  
  26412. SOLUTION
  26413.  
  26414.     When executing the bridge, the command must be as follows:
  26415.  
  26416.                  BRIDGE 450 <enter>
  26417.  
  26418.     The customer was using 400 as the amount of ram set aside for the bridge function.  This left insufficient ram to successfully load ROUTE.VP0.  The key is to look at the bridge console and watch it initialize.  The source routing VAP will show the following text on the bridge console if it loads properly:
  26419.  
  26420.                 Loading VAP Route.vp0:
  26421.                 Novell 286 OS Source Routing Vap v1.01 (900928)
  26422.                 (c) Copyright 1990 Novell Inc.  All Rights Reserved.
  26423.                 Lan Driver "A" Source Routing has been ENABLED
  26424.  
  26425.     If the above message appears, (especially the ENABLED message) the ROUTE.VP0 loaded successfully.
  26426.  
  26427.  
  26428.  
  26429.  
  26430. FYI:    Starter Kit Bug / SQLFile v2.10
  26431.                                      FYI
  26432.  
  26433. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26434.  
  26435.           TITLE:    Starter Kit Bug / SQLFile v2.10
  26436.     DOCUMENT ID:    FYI.A.1721
  26437.            DATE:    23APR91
  26438.         PRODUCT:    NetWare SQL
  26439. PRODUCT VERSION:    2.10
  26440.      SUPERSEDES:    NA
  26441.  
  26442.         SYMPTOM:    NA
  26443.  
  26444. ISSUE/PROBLEM
  26445.  
  26446.     There is a bug in the SQLFile Data Editor that ships with the Client/Server Starter Kit.  If you specify a Server Definition File when starting the data editor, you are required to include a C1:field parameter in this definition file to specify the field (column) name to be used for sorting (manual page 4-2).  If this field name consists of all upper case letters or all lower case, everything is fine.  However, if the field name is defined in the dictionary with mixed case, SQLFile will not find it, and will return the error message "Invalid Column Name [FIELD]" where FIELD is the field name you specified in the server definition file.  In this case, you will not be able to use a Server Definition File when starting SQLFile.
  26447.  
  26448.     The developer of the SQLFile Data Editor (Vinzant, Inc.) is aware of the problem and it has been fixed in the next version.  Customers can call Vinzant, Inc. at 219-763-3881 (manual page 4-1) and request an upgrade for a cost of $50, as of April 23, 1991.  This figure may be subject to change.
  26449.  
  26450.  
  26451.  
  26452.  
  26453. FYI:    SetCurrentNameSpace() in CLib v3.11
  26454.                                      FYI
  26455.  
  26456. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26457.  
  26458.           TITLE:    SetCurrentNameSpace() in CLib v3.11
  26459.     DOCUMENT ID:    FYI.A.3104
  26460.            DATE:    22APR91
  26461.         PRODUCT:    NA
  26462. PRODUCT VERSION:    NA
  26463.      SUPERSEDES:    NA
  26464.  
  26465.         SYMPTOM:    NA
  26466.  
  26467. ISSUE/PROBLEM
  26468.  
  26469.     The SetCurrentNameSpace() API says it returns the old_current_name_space. This is true, unless the name space you pass in is either invalid or is not supported on the current working volume.  In that case, it returns 255.
  26470.  
  26471.     If you attempt to SetCurrentNamespace() while you are logged in (i.e. not on connection zero), it will return 255.
  26472.  
  26473.  
  26474.  
  26475.  
  26476. FYI:    Attached vs Logged in
  26477.                                      FYI
  26478.  
  26479. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26480.  
  26481.           TITLE:    Attached vs Logged in
  26482.     DOCUMENT ID:    FYI.A.1305
  26483.            DATE:    22APR91
  26484.         PRODUCT:    NA
  26485. PRODUCT VERSION:    NA
  26486.      SUPERSEDES:    NA
  26487.  
  26488.         SYMPTOM:    NA
  26489.  
  26490. ISSUE/PROBLEM
  26491.  
  26492.     Customers wanting their application to determine whether or not a user is logged in or just attached to a file server can do so by checking the user's current bindery security access level.  A user's security access level is a BYTE type which returns with the user's READ/WRITE access in the HI/LO nibbles, respectively.  If a user is only attached to a file server their security access level is 0x00 or Anyone.  If a user is logged  in to a file server their security access level will be higher, such as  0x11 for logged or 0x33 for Supervisor.  The following is an example...
  26493.  
  26494.     #include <conio.h>
  26495.     #include <stdlib.h>
  26496.     #include <string.h>
  26497.     #include <nwconn.h>
  26498.     #include <nwlocal.h>
  26499.     #include <nwbindry.h>
  26500.     #include <nwwrkenv.h>
  26501.  
  26502.     void main (int  argc,
  26503.     char *argv[]) {
  26504.  
  26505.     WORD oldConnectionID, newConnectionID, objectType, cN;
  26506.     BYTE loginTime[7], securityAccessLevel;
  26507.     char fileserverName[48], objectName[48];
  26508.     long objectID;
  26509.     int  cCode;
  26510.  
  26511.     if (argc==1) {
  26512.     cprintf ("SYNTAX:  AMILOGDN fileserverName\n");
  26513.     exit (1);
  26514.     }
  26515.     strcpy (fileserverName, argv[1]);
  26516.     oldConnectionID = GetDefaultConnectionID ();
  26517.     AttachToFileServer (fileserverName, &newConnectionID);
  26518.     GetConnectionID (fileserverName, &newConnectionID);
  26519.     SetPreferredConnectionID (newConnectionID);
  26520.     GetBinderyAccessLevel (&securityAccessLevel, &objectID);
  26521.     if (securityAccessLevel == 0x00) {
  26522.     cprintf ("User is attached to file server.");
  26523.     LoginToFileServer ("JOEBLOW", OT_USER, "SEEKRITPSWD");
  26524.     }
  26525.     GetBinderyAccessLevel (&securityAccessLevel, &objectID);
  26526.     if (securityAccessLevel != 0x00)
  26527.     cprintf ("User is logged in to file server.");
  26528.     cN = GetConnectionNumber ();
  26529.     cCode=GetConnectionInformation (cN, objectName, &objectType, &objectID,
  26530.     loginTime);
  26531.     SetPreferredConnectionID (oldConnectionID);
  26532.     DetachFromFileServer (newConnectionID);
  26533. } /* main */
  26534.  
  26535.  
  26536.  
  26537.  
  26538. FYI:    NetWare SQL/XQL SHR Files
  26539.                                      FYI
  26540.  
  26541. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26542.  
  26543.           TITLE:    NetWare SQL/XQL SHR Files
  26544.     DOCUMENT ID:    FYI.A.1409
  26545.            DATE:    19APR91
  26546.         PRODUCT:    XQL
  26547. PRODUCT VERSION:    NA
  26548.      SUPERSEDES:    NA
  26549.  
  26550.         SYMPTOM:    NA
  26551.  
  26552. ISSUE/PROBLEM
  26553.  
  26554.     At the time of loading either NetWare SQL versions 2.01 or 2.11, or XQL versions 2.01 or 2.11, 3 share files are created.  They are named DDITEM.SHR, SESSITEM.SHR and TABITEM.SHR.  DDITEM.SHR refers to information about the Data Dictionary files, SESSITEM.SHR refers to information concerning sessions, and TABITEM.SHR holds information on the tables (or files).
  26555.  
  26556.     These three files were originally created in the VAP environment and are used to store information about users when they login to XQL/NetWare SQL dictionaries.  They are used as sort of a "bookkeeping" system for memory usage, by the NetWare SQL engine itself, so that RAM is used wisely.  They normally reside in the SYSTEM directory and they must be flagged shareable, read, write.  NetWare SQL writes to these files at load time and when users login to the NetWare SQL Engine.
  26557.  
  26558.     If a customer, for safety sake, flags his SYSTEM directory shareable/read only, the NetWare SQL engine when loading, will return the error message "unable to create share files".   This occurs in the NLM as well as the VAP.  You may also see it in XQL for DOS when it tries to creates views and the directory is flagged non-shareable read only.
  26559.  
  26560.  
  26561.  
  26562.  
  26563. FYI:    Xtrieve PLUS v4.01a and XQLP patches
  26564.                                      FYI
  26565.  
  26566. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26567.  
  26568.           TITLE:    Xtrieve PLUS v4.01a and XQLP patches
  26569.     DOCUMENT ID:    FYI.A.1408
  26570.            DATE:    19APR91
  26571.         PRODUCT:    XQLP
  26572. PRODUCT VERSION:    NA
  26573.      SUPERSEDES:    NA
  26574.  
  26575.         SYMPTOM:    NA
  26576.  
  26577. ISSUE/PROBLEM
  26578.  
  26579.     I recently had a customer who said that after he applied the patches to his BTRIEVE.VAP version 5.10a and to Xtrieve PLUS version 4.01a, he would get server errors every time he attempted to start Xtrieve:
  26580.  
  26581.             Error Sending on Network
  26582.      And
  26583.             Error Cannot locate Router
  26584.  
  26585.     The problem occurred because he ran the XQLP version 2.11 patches that he downloaded from NetWire, and applied them to his ALREADY patched XQLP version 2.01.
  26586.  
  26587.     I did duplicate this with the Btrieve VAP.  However, I did not try the NLM nor DOS versions of Btrieve.
  26588.  
  26589.  
  26590.  
  26591.  
  26592. FYI:    NLM Doc error / GetServerInformation v3.11
  26593.                                      FYI
  26594.  
  26595. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26596.  
  26597.           TITLE:    NLM Doc error / GetServerInformation v3.11
  26598.     DOCUMENT ID:    FYI.A.4005
  26599.            DATE:    16APR91
  26600.         PRODUCT:    NA
  26601. PRODUCT VERSION:    NA
  26602.      SUPERSEDES:    NA
  26603.  
  26604.         SYMPTOM:    NA
  26605.  
  26606. ISSUE/PROBLEM
  26607.  
  26608.     In the NetWare Loadable Modules Library Reference Volume II, SDK release there has been an error on the include file in the example of the source code for the GetServerInformation function call.
  26609.  
  26610.     Under GetServerInformation, the appropriate include file for this function call is #include <nwenvrn.h> and not <envrn.h> This function call can be found on chapter 19, page 35 and the include file can be located in \p\novc386\sdk\h.
  26611.  
  26612.  
  26613.  
  26614.  
  26615. FYI:    Borland C v2.0 (Windows SDK) with C-int and Btrieve
  26616.                                      FYI
  26617.  
  26618. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26619.  
  26620.           TITLE:    Borland C v2.0 (Windows SDK) with C-int and Btrieve
  26621.     DOCUMENT ID:    FYI.A.1227
  26622.            DATE:    16APR91
  26623.         PRODUCT:    Btrieve
  26624. PRODUCT VERSION:    NA
  26625.      SUPERSEDES:    NA
  26626.  
  26627.         SYMPTOM:    NA
  26628.  
  26629. ISSUE/PROBLEM
  26630.  
  26631.     Do you have a copy of "Borland C++"??? which contains TurboC++, some of the MS Windows SDK, and tools from the Whitewater Group?  Have you tested it and does it work with the C Interface for Windows API's?  ..and while we're on the subject, using with Btrieve for Windows?
  26632.  
  26633.     We haven't done any testing of the Borland product with the C-Interface for Windows yet. However, because there is a standard method of writing and calling DLL's under Windows, I anticipate no problems. The same should be true of our Btrieve DLL's.
  26634.  
  26635.  
  26636.  
  26637.  
  26638. FYI:    Print Server Services from NLM v3.10
  26639.                                      FYI
  26640.  
  26641. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26642.  
  26643.           TITLE:    Print Server Services from NLM v3.10
  26644.     DOCUMENT ID:    FYI.A.4004
  26645.            DATE:    12APR91
  26646.         PRODUCT:    NA
  26647. PRODUCT VERSION:    NA
  26648.      SUPERSEDES:    NA
  26649.  
  26650.         SYMPTOM:    NA
  26651.  
  26652. ISSUE/PROBLEM
  26653.  
  26654.     The function calls to the Print Server Services, i.e. PSERVER, (such as PSLoginToPrintServer, PSGetPrintServerInfo,PSAttachToPrintServer PSGetPrinterStatus, etc...), are currently not in the CLib NLM.
  26655.  
  26656.     Here are two choices that developers have if they need to access PSERVER services from an NLM:
  26657.  
  26658.     1)    If they have C Interface for DOS, they can port the Print Server Services function calls to the NLM environment.  There are only a few functions that must be modified in order to get them to work.
  26659.  
  26660.     2)    Otherwise, he can wait to see if we provide these services in CLib... This is not a product announcement.  Our official response is:
  26661.           "We are currently investigating providing Print Server Services in the NLM environment".
  26662.  
  26663.  
  26664.  
  26665.  
  26666. FYI:    Windows v3.0 DOS Box Help
  26667.                                      FYI
  26668.  
  26669. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26670.  
  26671.           TITLE:    Windows v3.0 DOS Box Help
  26672.     DOCUMENT ID:    FYI.A.1226
  26673.            DATE:    12APR91
  26674.         PRODUCT:    NA
  26675. PRODUCT VERSION:    NA
  26676.      SUPERSEDES:    NA
  26677.  
  26678.         SYMPTOM:    NA
  26679.  
  26680. ISSUE/PROBLEM
  26681.  
  26682.     I received some information from Development in Provo regarding help for people experiencing problems when they make NetWare shell calls from multiple DOS boxes under Windows. They should try using the XMSNET shell v3.02 or later and set ALL SERVERS=ON and SHOW DOTS = ON in the shell.cfg.
  26683.  
  26684.  
  26685.  
  26686.  
  26687. FYI:    Flush Capture Timeout Count Prob
  26688.                                      FYI
  26689.  
  26690. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26691.  
  26692.           TITLE:    Flush Capture Timeout Count Prob
  26693.     DOCUMENT ID:    FYI.A.1225
  26694.            DATE:    12APR91
  26695.         PRODUCT:    NA
  26696. PRODUCT VERSION:    NA
  26697.      SUPERSEDES:    NA
  26698.  
  26699.         SYMPTOM:    NA
  26700.  
  26701. ISSUE/PROBLEM
  26702.  
  26703.     Refer to previous FYI on GetSpecificCaptureFlags API re: the TimeoutCount field being returned incorrectly.
  26704.  
  26705.     This is a problem in the Windows C-Interface, the DOS C-Interface, and the DOS System Calls. It turns out that the System Calls documentation defines the FlushCaptureTimeoutCount as being hi-lo order instead of the correct order, lo-hi!  Consequently, the DOS C-int and the Windows C-int pass on this value in the incorrect form.
  26706.  
  26707.     This problem will be fixed in the bug-fix release to be sent out in the next few weeks for the Windows SDK. It will be fixed in the next release of the DOS C-Interface, as well.
  26708.  
  26709.  
  26710.  
  26711.  
  26712. FYI:    Windows/Btrieve Locking Data Segs
  26713.                                      FYI
  26714.  
  26715. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26716.  
  26717.           TITLE:    Windows/Btrieve Locking Data Segs
  26718.     DOCUMENT ID:    FYI.A.1224
  26719.            DATE:    12APR91
  26720.         PRODUCT:    Btrieve
  26721. PRODUCT VERSION:    NA
  26722.      SUPERSEDES:    NA
  26723.  
  26724.         SYMPTOM:    NA
  26725.  
  26726. ISSUE/PROBLEM
  26727.  
  26728.     If you are writing a DLL under Windows which calls the Btrieve DLL, it has been recommended that you lock the current data segment before doing the Btrieve call (Windows doesn't automatically lock a DLL's data segment).
  26729.  
  26730.     One way to do this is:
  26731.  
  26732.     LockSegment (-1);     /* -1 implies current data segment */
  26733.  
  26734.     BTRCALL (...);
  26735.  
  26736.     UnlockSegment (-1);
  26737.  
  26738.  
  26739.  
  26740.  
  26741. FYI:    Windows NWCInt/W v1.x Capture Timeout Problem
  26742.                                      FYI
  26743.  
  26744. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26745.  
  26746.           TITLE:    Windows NWCInt/W v1.x Capture Timeout Problem
  26747.     DOCUMENT ID:    FYI.A.1223
  26748.            DATE:    12APR91
  26749.         PRODUCT:    NA
  26750. PRODUCT VERSION:    NA
  26751.      SUPERSEDES:    NA
  26752.  
  26753.         SYMPTOM:    NA
  26754.  
  26755. ISSUE/PROBLEM
  26756.  
  26757.     When you set the Capture timeout count to something other than 0 under DOS, then make a Windows call to retrieve the flushCaptureTimeoutCount, you get nonsense numbers. This has been reported as a bug.
  26758.  
  26759.  
  26760.  
  26761.  
  26762. FYI:    Using Watcom Clock Function
  26763.                                      FYI
  26764.  
  26765. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26766.  
  26767.           TITLE:    Using Watcom Clock Function
  26768.     DOCUMENT ID:    FYI.A.3902
  26769.            DATE:    11APR91
  26770.         PRODUCT:    NA
  26771. PRODUCT VERSION:    NA
  26772.      SUPERSEDES:    NA
  26773.  
  26774.         SYMPTOM:    NA
  26775.  
  26776. ISSUE/PROBLEM
  26777.  
  26778.     It is often important to run benchmarks or measure the time it takes for a process to execute.  The following example program shows how to use the WatCom clock function to time a process down to 1/100 of a second. The clock function returns the number of 1/100 second increments since the program began execution.
  26779.  
  26780.     double   delta_t, start_time, end_time;
  26781.     :
  26782.     :
  26783.     :
  26784.     start_time = (double) clock();
  26785.     Stat       = Btrieve(BXGET_NEXT, PosBlk...);  // process to benchmark
  26786.     end_time   = (double) clock();
  26787.     delta_t    = (end_time - start_time) / CLK_TCK;
  26788.  
  26789.     :
  26790.     :
  26791.     printf("Received Records in %6.2f seconds", delta_t);
  26792.  
  26793.     // Note:   CLK_TCK is a constant equal to 100
  26794.  
  26795.  
  26796.  
  26797.  
  26798. FYI:    Finding out if LU 6.2 is Loaded... v1.0
  26799.                                      FYI
  26800.  
  26801. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26802.  
  26803.           TITLE:    Finding out if LU 6.2 is Loaded... v1.0
  26804.     DOCUMENT ID:    FYI.A.2804
  26805.            DATE:    11APR91
  26806.         PRODUCT:    NA
  26807. PRODUCT VERSION:    NA
  26808.      SUPERSEDES:    NA
  26809.  
  26810.         SYMPTOM:    NA
  26811.  
  26812. ISSUE/PROBLEM
  26813.  
  26814.     NetWare LU6.2 initiates conversations through a software interrupt which invokes the protocol boundary.  The protocol passes a pointer across the protocol boundary.  The "INT - 0x68" invokes LU6.2 and the LU6.2 initialization program establishes this interrupt vector at storage location 416 (416 equals 0x68-104 times 4) with the four-byte address of the LU6.2 interrupt handler. Transaction programs verify NetWare LU6.2 is loaded by comparing the seven-byte string located nine bytes before the address pointed to in the 0x68 vector to the string "APPC/PC".
  26815.  
  26816.  
  26817.  
  26818.  
  26819. FYI:    NetWare Naming Service
  26820.                                      FYI
  26821.  
  26822. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26823.  
  26824.           TITLE:    NetWare Naming Service
  26825.     DOCUMENT ID:    FYI.A.3103
  26826.            DATE:    09APR91
  26827.         PRODUCT:    NA
  26828. PRODUCT VERSION:    NA
  26829.      SUPERSEDES:    NA
  26830.  
  26831.         SYMPTOM:    NA
  26832.  
  26833. ISSUE/PROBLEM
  26834.  
  26835.     If you have developers needing documentation on the NetWare Naming Services, send them to the Developer Relations Group @ 800-RED-WORD.  They will mail the documentation out to them...
  26836.  
  26837.  
  26838.  
  26839.  
  26840. FYI:    OS/2 stuff
  26841.                                      FYI
  26842.  
  26843. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26844.  
  26845.           TITLE:    OS/2 stuff
  26846.     DOCUMENT ID:    FYI.A.3706
  26847.            DATE:    08APR91
  26848.         PRODUCT:    NA
  26849. PRODUCT VERSION:    NA
  26850.      SUPERSEDES:    NA
  26851.  
  26852.         SYMPTOM:    NA
  26853.  
  26854. ISSUE/PROBLEM
  26855.  
  26856.     It looks like the 1.3 version of the requester will not work with a Western Digital driver. More on this later...
  26857.  
  26858.     The 1.3 version of the OS/2 requester is now shipping as part of the 3.11 NetWare package. THe OS/2 SDK that contains our APIs will also be shipping very soon. If you are an eager beaver(HA!), then you can test all your old OS/2 1.2 stuff against the new 1.3. It is installed on Yellow Sub in the lab.
  26859.  
  26860.     There is now a way for the NetWare OS/2 1.3 requester and IBM OS/2 EE to work together. In case you may have forgotten, past versions of the requester would not work with IBM OS/2 EE(i.e. Communications Manager, Database Manager and LAN Server). But now, the NetWare OS/2 requester will support IBM OS/2 EE if you do the following:
  26861.  
  26862.     ■    use NETAPI and NETOEM DLLs provided by IBM(rather than those provided by Novell in the past)
  26863.  
  26864.     ■    IBM, not Novell bridges
  26865.  
  26866.     ■    Novell source routing on all servers and clients
  26867.  
  26868. This, with a little luck, will provide customers compatibility between OS/2 EE and NetWare.
  26869.  
  26870.  
  26871.  
  26872.  
  26873. FYI:    Named Pipes Information, OS/2 Req 1.3
  26874.                                      FYI
  26875.  
  26876. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26877.  
  26878.           TITLE:    Named Pipes Information, OS/2 Req 1.3
  26879.     DOCUMENT ID:    FYI.A.3705
  26880.            DATE:    08APR91
  26881.         PRODUCT:    NA
  26882. PRODUCT VERSION:    NA
  26883.      SUPERSEDES:    NA
  26884.  
  26885.         SYMPTOM:    NA
  26886.  
  26887. ISSUE/PROBLEM
  26888.  
  26889.     NAMED PIPES -          You can use the NET.CFG file to change the default configuration for the Named Pipes protocol.  You can reconfigure any or all of the following features of Named Pipes (to use the default value for a feature, simply leave the line for that feature out of the NET.CFG file).
  26890.  
  26891.     Client sessions        Maximum number of connections any one workstation can establish with all Named Pipes servers.  Must be a whole number between 3 and 128 (default=16).
  26892.  
  26893.     Server sessions        Maximum number of connections a Named Pipes server will support with all Named Pipes clients.  Must be a whole number between 2 and 255 (default=32).
  26894.  
  26895.     Service threads        Maximum number of threads the Named Pipes server will allocate to service requests from all clients.  If the server applications use blocking pipes, increase this value. If the server uses non-blocking pipes, use the default value for better performance. Must be a whole number between 1 and 32 (default=3).
  26896.  
  26897.     The Named Pipes entry in NET.CFG should have the following syntax:
  26898.     named pipes
  26899.     client sessions #
  26900.     server sessions #
  26901.     service threads #
  26902.  
  26903.     Replace the pound sign (#) with a valid number, as instructed above. Indent the lines under "named pipes," using either spaces or tabs.
  26904.  
  26905.     NAMED PIPES FOR DOS
  26906.  
  26907.     -    Your OS/2 1.3 workstation may require up to a minute after you run the Named Pipes extender for DOS before it is ready to run a Named Pipes application.  This can be especially significant in batch files, where Named Pipes applications may fail because they are executed immediately (with no pause) after running the extender.
  26908.  
  26909.     -    Step 3 on page 54 of the manual instructs you to put a line calling DOSNP.EXE into your AUTOEXEC.BAT file.  You must add this DOSNP.EXE line after the line which loads IPX.COM and before the line which loads the DOS shell (usually called NETx.COM); otherwise, there may be a conflict between DOSNP.EXE and the DOS shell.
  26910.  
  26911.  
  26912.  
  26913.  
  26914. FYI:    NLM related stuff, CLib 3.1
  26915.                                      FYI
  26916.  
  26917. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26918.  
  26919.           TITLE:    NLM related stuff, CLib 3.1
  26920.     DOCUMENT ID:    FYI.A.3704
  26921.            DATE:    08APR91
  26922.         PRODUCT:    NA
  26923. PRODUCT VERSION:    NA
  26924.      SUPERSEDES:    NA
  26925.  
  26926.         SYMPTOM:    NA
  26927.  
  26928. ISSUE/PROBLEM
  26929.  
  26930.     NLM-    In version 3.0, the number of jobs that can be present in a Queue as in CreateQueueAndJobFile used to be 250. Now, in CLib 3.1, has been increased to 8191. This change slipped by many people before it was noticed.
  26931.  
  26932.     NLM-    Let's say you are running an NLM on file server A. Your NLM logs into file server B. Since B is now his current FileServerId and it is a remote server, an issued call to ScanBinderyObjectTrusteePaths will always return a 0(success), even if there are no more trustees. Since the CLIB checks the return code and assumes that since it was 0, it was successful and copies a string(in this case garbage) into the TrusteeIDs variable. The current workaround to this bug is to check the first character in the TrusteeID string. If it is NULL, then there will be no more trustees. This is only true on the remote instance, not the local one.
  26933.  
  26934.     NLM-    if you wanted to hook, for some reason, into the timer tick in an NLM, you will now be able to do so in NetWare 3.11. Under 3.11, you now have access to the ADVANCED.H functions and you would be able to use ScheduleInterruptTimerCallback API.
  26935.  
  26936.  
  26937.  
  26938.  
  26939. FYI:    Btrieve v5.10a VAP and ArcNet
  26940.                                      FYI
  26941.  
  26942. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26943.  
  26944.           TITLE:    Btrieve v5.10a VAP and ArcNet
  26945.     DOCUMENT ID:    FYI.A.3001
  26946.            DATE:    08APR91
  26947.         PRODUCT:    NetWare Btrieve
  26948. PRODUCT VERSION:    5.10A
  26949.      SUPERSEDES:    NA
  26950.  
  26951.         SYMPTOM:    NA
  26952.  
  26953. ISSUE/PROBLEM
  26954.  
  26955.     Short Description:  The VAP goes away with 2 ArcNet LANs, if LAN A is disconnected.
  26956.  
  26957.     Status:  Not a Bug in Btrieve
  26958.  
  26959. SOLUTION
  26960.  
  26961.     Reload the VAP
  26962.  
  26963.     Btrieve VAP goes away under the following scenario:
  26964.  
  26965.     Two workstations are attached to the server by 2 ArcNet cards.  If LAN A is disconnected, Btrieve application on LAN B will return status 20; and "send failure in advertiser RC=FE" will be returned on the server console. Bconsole shows NetWare Btrieve is not loaded, however, USERLIST shows two connections for the Btrieve VAP.  Basically, the VAP needs to be reloaded after LAN A is connected back.
  26966.  
  26967.     This is not a Btrieve problem.  If the network is in an erroneous state, Btrieve cannot do anything about it.  Thus, returns "send failure in advertiser".
  26968.  
  26969.  
  26970.  
  26971.  
  26972. FYI:    DOS FindFirst and Findnext APIs,
  26973.                                      FYI
  26974.  
  26975. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  26976.  
  26977.           TITLE:    DOS FindFirst and Findnext APIs,
  26978.     DOCUMENT ID:    FYI.A.2606
  26979.            DATE:    08APR91
  26980.         PRODUCT:    NA
  26981. PRODUCT VERSION:    NA
  26982.      SUPERSEDES:    NA
  26983.  
  26984.         SYMPTOM:    NA
  26985.  
  26986. ISSUE/PROBLEM
  26987.  
  26988.     Here's almost the final word on the DOS Find-first Find-next INT 21 functions that caused problems for people on NW 3.0, and 3.1.
  26989.  
  26990.     The file system was at fault and showed the most problems in 3.0, where, apparently every other directory entry was skipped when using this function pair.
  26991.  
  26992.     In NW 3.1 however it had problems when getting into the extended directory structure, exceeding the number of outstanding searches on the file server. This can be somewhat controlled by bumping up the MAXIMUM OUTSTANDING NCP DIRECTORY SEARCHS from the default 51 higher to any number up to 1000.  If the latter is not sufficient then there is a patch available that fixes this problem on NetWire.
  26993.  
  26994.     As for NW 3.11, it works correctly, thus any Tree Walker software should function normally.
  26995.  
  26996.  
  26997.  
  26998.  
  26999. FYI:    GetVolumeInformation (All NWCINT products)
  27000.                                      FYI
  27001.  
  27002. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27003.  
  27004.           TITLE:    GetVolumeInformation (All NWCINT products)
  27005.     DOCUMENT ID:    FYI.A.2605
  27006.            DATE:    08APR91
  27007.         PRODUCT:    NA
  27008. PRODUCT VERSION:    NA
  27009.      SUPERSEDES:    NA
  27010.  
  27011.         SYMPTOM:    NA
  27012.  
  27013. ISSUE/PROBLEM
  27014.  
  27015.     The call GetVolumeInformation is a 286 specific call.  Not mentioned directly in the documentation until reading the GetVolUsage API that is its replacement for 386.
  27016.  
  27017.     This is on our obsolete lists that we all got way back when, although the documentation fails to mention this in the GetVolumeInformation description.
  27018.  
  27019.  
  27020.  
  27021.  
  27022. FYI:    iDSize in XQLConvert (XQL v2.11)
  27023.                                      FYI
  27024.  
  27025. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27026.  
  27027.           TITLE:    iDSize in XQLConvert (XQL v2.11)
  27028.     DOCUMENT ID:    FYI.A.1720
  27029.            DATE:    08APR91
  27030.         PRODUCT:    XQL
  27031. PRODUCT VERSION:    NA
  27032.      SUPERSEDES:    NA
  27033.  
  27034.         SYMPTOM:    NA
  27035.  
  27036. ISSUE/PROBLEM
  27037.  
  27038.     When using the XQL v2.11 functions XQLConvert or xConvert to convert a displayable formatted ASCII value into its internal format, you are supposed to set the iDSize parameter to the display size of the formatted value. This should be set to the actual length of the string you are passing in to be converted, not the maximum display size of any data in that field, which is what would be returned by an XQLDescribe call.
  27039.  
  27040.  
  27041.  
  27042.  
  27043. FYI:    FERegisterNSPathParser (PATH PARSERS CLIB NLM)
  27044.                                      FYI
  27045.  
  27046. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27047.  
  27048.           TITLE:    FERegisterNSPathParser (PATH PARSERS CLIB NLM)
  27049.     DOCUMENT ID:    FYI.A.3205
  27050.            DATE:    02APR91
  27051.         PRODUCT:    NA
  27052. PRODUCT VERSION:    NA
  27053.      SUPERSEDES:    NA
  27054.  
  27055.         SYMPTOM:    NA
  27056.  
  27057. ISSUE/PROBLEM
  27058.  
  27059.     NetWare 3.11 is now in the hands of the general public. In 3.11 we are supporting various namespaces. What this means to us is we can know do functions such as open , opendir and chdir with a path that belongs to the new namespace, well almost. These functions have been designed to use the NetWare path. A NetWare path does not look like a DOS path at all it is quite a bit more flexible consisting of a count and a string of elements (path). The count is the number of elements that are in the path. Each element contains the length of the directory or filename plus the directory or file name. The NetWare path does not contain the Server or Volume information as the functions that use these paths will know them by connectionIDs and volume numbers.
  27060.  
  27061.     So a DOS path that looks like this:
  27062.  
  27063.     server/volume:dir1/dir2/filename
  27064.  
  27065.     The NetWare path count will be 3 and the NetWare path will be:
  27066.  
  27067.     "\0x3dir1\0x3dir2\0x8filename"
  27068.  
  27069.     As we all know the functions I talked about earlier do not require you to pass in this odd looking path. Each of these functions call a PathParser function on their path parameter. CLib presently only has one PathParser,which converts a DOS path to a NetWare path. So how do we support the other name space? CLib supplies a new function called FERegisterNSPathParser.
  27070.  
  27071.     The Function FERegisterNSPathParser(T_PathParseFunc parser) will register the parser function for the current name space. If you wish to register a parser for another namespace you need to create a function to parse that namespace's path.  This function must follow the prototype that can be found in the new NLM Reference 7-61,or in FILEENGD.H.
  27072.  
  27073.     Your parser must accept the path of that namespace such as NFS and translate it into an internal NetWare path. The internal NetWare path does not have the server or volume name in it. So your function must get and pass back the FilerServerID, the Volumenumber, a directorynumber (if your path is offset from this number else the directory number of the root), the NetWare path count, and the NetWare path.
  27074.  
  27075.     The current namespace must be set to the appropriate namespace before you call FERegisterNSPathParser. The current namespace can be set with a call to SetCurrentNameSpace. Once the new path parser is registered, the functions such as open will call the new path parser to translate the path parameter into its NetWare counterparts.
  27076.  
  27077.  
  27078.  
  27079.  
  27080. FYI:    C Interface NWCINT/W v1.2 - GetDLLVersion
  27081.                                      FYI
  27082.  
  27083. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27084.  
  27085.           TITLE:    C Interface NWCINT/W v1.2 - GetDLLVersion
  27086.     DOCUMENT ID:    FYI.A.2604
  27087.            DATE:    02APR91
  27088.         PRODUCT:    NA
  27089. PRODUCT VERSION:    NA
  27090.      SUPERSEDES:    NA
  27091.  
  27092.         SYMPTOM:    NA
  27093.  
  27094. ISSUE/PROBLEM
  27095.  
  27096.     The GetDLLVersion API has its prototype in NWMISC.H while the DLL NWCORE.DLL contains the actual function.  This poses minor inconveniences for a client to find which DLL they must reference in the IMPORTs of the DEF file.
  27097.  
  27098.  
  27099.  
  27100.  
  27101. FYI:    DSWIN Files
  27102.                                      FYI
  27103.  
  27104. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27105.  
  27106.           TITLE:    DSWIN Files
  27107.     DOCUMENT ID:    FYI.A.1610
  27108.            DATE:    02APR91
  27109.         PRODUCT:    NA
  27110. PRODUCT VERSION:    NA
  27111.      SUPERSEDES:    NA
  27112.  
  27113.         SYMPTOM:    NA
  27114.  
  27115. ISSUE/PROBLEM
  27116.  
  27117.     Where should I unzip those DSWIN files?  Here's the answer, taken directly out of the NetWare Application Notes, January, 1991 issue:
  27118.  
  27119.     DSWIN1.ZIP           SHGEN-1
  27120.     DSWIN2.ZIP           SHGEN-2
  27121.     DSWIN3.ZIP           UTIL-1
  27122.     DSWIN4.ZIP           UTIL-2
  27123.  
  27124.     Unfortunately, the readme files included on these disks do not mention where the files should be unzipped to.  The right hand column above indicates the name of the subdirectory the files should be unzipped to, or the LABEL of the diskette where these files are unzipped. To build a SHGEN-1 diskette, do the following:
  27125.  
  27126.     FORMAT A:
  27127.     LABEL A:
  27128.     SHGEN-1 (enter this at the prompt from the LABEL program)
  27129.     PKUNZIP DSWIN1.ZIP A:
  27130.  
  27131.  
  27132.  
  27133.  
  27134. FYI:    MapDrive Not Freeing Memory
  27135.                                      FYI
  27136.  
  27137. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27138.  
  27139.           TITLE:    MapDrive Not Freeing Memory
  27140.     DOCUMENT ID:    FYI.A.1609
  27141.            DATE:    02APR91
  27142.         PRODUCT:    NA
  27143. PRODUCT VERSION:    NA
  27144.      SUPERSEDES:    NA
  27145.  
  27146.         SYMPTOM:    NA
  27147.  
  27148. ISSUE/PROBLEM
  27149.  
  27150.     There is a bug in the MapDrive function in the C Interface-DOS v1.2 libraries in which MapDrive allocates memory that it never frees. This is usually only a problem if MapDrive is called repetitively, as the machine it is running on will soon run out of memory.  This memory is freed, however, when the application exits, by the built- in C exit routines.
  27151.  
  27152.     The source file (...\SOURCE\DIRECTORY\MAP.C) must be changed to fix the bug, but the changes are simple.  There are five locations which return values after the memory is allocated.  They are:
  27153.  
  27154.     if( *driveLetter <= lastLocalDriveLetter )
  27155.     return( NO_DRIVE_AVAILABLE );
  27156.     .
  27157.     .
  27158.     .
  27159.     ccode = MapNonSearchDrive(fullPath, driveLetter, searchFlag);
  27160.     if( ccode )
  27161.     return( ccode );
  27162.     .
  27163.     .
  27164.     .
  27165.     if( searchFlag == DRIVE_DELETE )
  27166.     return( NO_SUCH_SEARCH_DRIVE );
  27167.     .
  27168.     .
  27169.     .
  27170.     ccode = MapSearchDrive( fullPath, driveLetter, searchFlag,
  27171.     searchOrder, pathVariable );
  27172.     if( ccode )
  27173.     return( ccode );
  27174.     .
  27175.     .
  27176.     .
  27177.     SetPreferredConnectionID( oldConnectionID );
  27178.     return( ccode );
  27179.  
  27180.     Before each return function, the pathVariable should be freed.  For example, the first return should be changed to the following:
  27181.  
  27182.     if( *driveLetter <= lastLocalDriveLetter )
  27183.     {
  27184.     free(pathVariable);
  27185.     return( NO_DRIVE_AVAILABLE );
  27186.     }
  27187.  
  27188.     There are more elegant ways to fix this, but this one requires the least amount of source change.
  27189.  
  27190.     This has been reported as a bug (#890).
  27191.  
  27192.  
  27193.  
  27194.  
  27195. FYI:    Windows API v1.0 Release Notes
  27196.                                      FYI
  27197.  
  27198. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27199.  
  27200.           TITLE:    Windows API v1.0 Release Notes
  27201.     DOCUMENT ID:    FYI.A.1222
  27202.            DATE:    02APR91
  27203.         PRODUCT:    NA
  27204. PRODUCT VERSION:    NA
  27205.      SUPERSEDES:    NA
  27206.  
  27207.         SYMPTOM:    NA
  27208.  
  27209. ISSUE/PROBLEM
  27210.  
  27211.     In the release notes for the Windows API SDK, it states that you should put your LIB files in a directory in your PATH environment variable. This is incorrect. You don't need your libraries in your PATH; you just need to have them in a directory designated by your LIB environment variable.
  27212.  
  27213.  
  27214.  
  27215.  
  27216. FYI:    TBMI, What, When, How and Where - Windows v3.0
  27217.                                      FYI
  27218.  
  27219. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27220.  
  27221.           TITLE:    TBMI, What, When, How and Where - Windows v3.0
  27222.     DOCUMENT ID:    FYI.A.1221
  27223.            DATE:    02APR91
  27224.         PRODUCT:    NA
  27225. PRODUCT VERSION:    NA
  27226.      SUPERSEDES:    NA
  27227.  
  27228.         SYMPTOM:    NA
  27229.  
  27230. ISSUE/PROBLEM
  27231.  
  27232.     ***************************************************************************
  27233.  
  27234.     TBMI (Task-switching Buffer Manager for IPX/SPX), as most people know, is Novell's current solution for supporting IPX/SPX communication from a DOS box under Windows. It is being distributed free via NetWire and contains documentation describing how to load TBMI (before windows) and TASKID (inside of each DOS box doing direct IPX/SPX calls).
  27235.  
  27236.     ***************************************************************************
  27237.  
  27238.     There has been some confusion as to how you can tell whether you need to use TBMI with a particular application.  One way is to simply run the application several times without TBMI and see if it hangs. If it does, try it again with TBMI. Not a very elegant approach!
  27239.  
  27240.     ***************************************************************************
  27241.  
  27242.     You can use the diagnostics switch built in to TBMI to easily determine whether it makes SPX calls. Follow this procedure:
  27243.  
  27244.     Load TBMI
  27245.     Load Windows
  27246.     Open a DOS Box
  27247.     Load TaskID
  27248.     Run your application (make sure you test all possible code paths)
  27249.     Run TBMI /d    (for diagnostics)
  27250.  
  27251.     If the max ECB's used count is greater than 0, than the application did indeed make an SPX call and you need to load TBMI/TASKID when using this application. If the max ECB's count is still 0, then you do not need to load TASKID before running this program.  Simple, yes?
  27252.  
  27253.  
  27254.  
  27255.  
  27256. FYI:    FindComponentOffset() ;   Diagnostic Services  V1.2
  27257.                                      FYI
  27258.  
  27259. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27260.  
  27261.           TITLE:    FindComponentOffset() ;   Diagnostic Services  V1.2
  27262.     DOCUMENT ID:    FYI.A.3601
  27263.            DATE:    22MAR91
  27264.         PRODUCT:    NA
  27265. PRODUCT VERSION:    NA
  27266.      SUPERSEDES:    NA
  27267.  
  27268.         SYMPTOM:    NA
  27269.  
  27270. ISSUE/PROBLEM
  27271.  
  27272.     Just a word of warning.  If the component that you are looking for does not exist within the componentList this function will return a componentOffset that is trash and should not be used in subsequent Diagnostic calls.
  27273.  
  27274.     A fix would be to change the return() statement in the code from:
  27275.  
  27276.     return( componentOffset ) ;
  27277.  
  27278.     to:
  27279.  
  27280.     return( numberOfComponents == 0 ? 0xFF : componentOffset ) ;
  27281.  
  27282.     This would bring the workings of the function to more closely match the documentation.  If the component is not found return a 0xFF else return the component.
  27283.  
  27284.  
  27285.  
  27286.  
  27287. FYI:    PATCH31.NLM v13-Feb-91
  27288.                                      FYI
  27289.  
  27290. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27291.  
  27292.           TITLE:    PATCH31.NLM v13-Feb-91
  27293.     DOCUMENT ID:    FYI.A.3102
  27294.            DATE:    21MAR91
  27295.         PRODUCT:    NA
  27296. PRODUCT VERSION:    NA
  27297.      SUPERSEDES:    NA
  27298.  
  27299.         SYMPTOM:    NA
  27300.  
  27301. ISSUE/PROBLEM
  27302.  
  27303.     Later today, we'll be putting an NLM called PATCH31 on CompuServe in the NOVA forum in Data Library 16.  This NLM corrects several bugs in v3.10 of CLib for NetWare v3.10.  Below is the README file which is accompanying the PATCH31...
  27304.  
  27305. PATCH31.NLM
  27306.  
  27307.     This NLM patches several functions in CLib v3.10.  See the list of functions below that are replaced by the PATCH31 NLM.
  27308.  
  27309.     I.  Installing and Removing PATCH31.NLM
  27310.  
  27311.     To install 'PATCH31.NLM', load it as you would any NLM.  To remove 'PATCH31.NLM', unload it as you would any NLM.  When you unload 'PATCH31.NLM', the code that was patched will be restored to its old values.
  27312.  
  27313.     When the 'PATCH31.NLM' is loaded, it identifies itself as 'Patch ID 13-Feb-91'.
  27314.  
  27315.     WARNING: Do not unload 'PATCH31.NLM' while the CLib is being used by other NLMs.
  27316.  
  27317.     II.  Functions Replaced by PATCH31
  27318.  
  27319.     AddSpaceRestrictionForDirectory
  27320.     AFPGetEntryIDFromPathName
  27321.     AFPGetFileInformation
  27322.     AFPSupported
  27323.     BeginTreadGroup
  27324.     ChangeDirectoryEntry
  27325.     chdir
  27326.     close
  27327.     closedir
  27328.     DownFileServer
  27329.     free
  27330.     getcwd
  27331.     GetFileServerID
  27332.     GetServerInformation
  27333.     GetVolumeName
  27334.     ModifyInheritedRightsMask
  27335.     opendir
  27336.     readdir
  27337.     ReadPropertyValue
  27338.     RenameBinderyObject
  27339.     ScanBinderyObject
  27340.     ScanProperty
  27341.     SetFileInfo
  27342.     SetDirectoryInfo
  27343.     stat
  27344.     utime
  27345.     VerifyBinderyObjectPassword
  27346.     WritePropertyValue
  27347.  
  27348.  
  27349.  
  27350.  
  27351. FYI:    Disk Space, Windows v3.0
  27352.                                      FYI
  27353.  
  27354. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27355.  
  27356.           TITLE:    Disk Space, Windows v3.0
  27357.     DOCUMENT ID:    FYI.A.3101
  27358.            DATE:    18MAR91
  27359.         PRODUCT:    NA
  27360. PRODUCT VERSION:    NA
  27361.      SUPERSEDES:    NA
  27362.  
  27363.         SYMPTOM:    NA
  27364.  
  27365. ISSUE/PROBLEM
  27366.  
  27367.     There is a configuration you can set under Windows to tell it to use a temporary swap file.  If you use this option, the swapfile is deleted when you exit Windows.
  27368.  
  27369.  
  27370.  
  27371.  
  27372. FYI:    Windows and Windowed DOS Boxes
  27373.                                      FYI
  27374.  
  27375. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27376.  
  27377.           TITLE:    Windows and Windowed DOS Boxes
  27378.     DOCUMENT ID:    FYI.A.2603
  27379.            DATE:    15MAR91
  27380.         PRODUCT:    NA
  27381. PRODUCT VERSION:    NA
  27382.      SUPERSEDES:    NA
  27383.  
  27384.         SYMPTOM:    NA
  27385.  
  27386. ISSUE/PROBLEM
  27387.  
  27388.     To all your amazement we have a workaround for the problem running our utilities (and probably other applications) in a Windowed DOS box.
  27389.  
  27390.     Just to recap - running several of our utilities in a Windowed DOS box (as opposed to the FULL screen DOS box) caused major problems, such as reboots and locking up the machine.
  27391.  
  27392.     The FIX:  use TBMI.COM and TASKID.COM when running a WINDOWED DOS BOX.  Ya I know.. what's the difference between a FULL screen DOS box and a Windowed DOS box. I thought it was just the size of the window.  Apparently not.  In any case it works with the TBMI/TASKID support.  NOTICE: the FULL screen DOS box does not require TBMI/TASKID.
  27393.  
  27394.  
  27395.  
  27396.  
  27397. FYI:    Stack Overflow in an NLM  v 8.0
  27398.                                      FYI
  27399.  
  27400. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27401.  
  27402.           TITLE:    Stack Overflow in an NLM  v 8.0
  27403.     DOCUMENT ID:    FYI.A.4003
  27404.            DATE:    14MAR91
  27405.         PRODUCT:    NA
  27406. PRODUCT VERSION:    NA
  27407.      SUPERSEDES:    NA
  27408.  
  27409.         SYMPTOM:    NA
  27410.  
  27411. ISSUE/PROBLEM
  27412.  
  27413.     During your execution of an NLM, you might get an abort error message indicating your stack was overflowed. If such an error is encountered, do the following things:
  27414.  
  27415.     - compile without the /s option, note that /ox implies /s!
  27416.  
  27417.     - set  #pragma on(check_stack);
  27418.     Pragma is a compiler directive that allows you to specify certain compiler options.
  27419.  
  27420.     By setting #pragma on(check_stack), the compiler generates the run time call to a stack checking routine at the start of every routine compiled while this option is in effect. Thus, you need to declare this pragma BEFORE and function declarations are made.  Also, you must declare it in every source file.  If you want stack checking everywhere, remove the /s option. This runtime checking routine will issue an error if a stack overflow occurs when the routine is invoked. If you set it to OFF, then overflow is ignored. If such an error does occur, you need to increase your stack size. To increase your stack size, you need to set the STACK option with a larger size (ex: OPTION STACK = n) and relink your program.
  27421.  
  27422.  
  27423.  
  27424.  
  27425. FYI:    Scan Bindery Object Trustee Paths, CLib 3.1
  27426.                                      FYI
  27427.  
  27428. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27429.  
  27430.           TITLE:    Scan Bindery Object Trustee Paths, CLib 3.1
  27431.     DOCUMENT ID:    FYI.A.3703
  27432.            DATE:    14MAR91
  27433.         PRODUCT:    NA
  27434. PRODUCT VERSION:    NA
  27435.      SUPERSEDES:    NA
  27436.  
  27437.         SYMPTOM:    NA
  27438.  
  27439. ISSUE/PROBLEM
  27440.  
  27441.     NLM- Let's say you are running an NLM on file server A. Your NLM logs into a file server B. Since B is now your current FileServerId and it is a remote server, an issued call to ScanBinderyObjectTrusteePaths in CLib 3.1 will always return a 0(success), even if there are no more trustees. Since the CLIB checks the return code and assumes that since it was 0, it was successful it will then copy a string(in this case garbage) into the TrusteeIDs path var. The current workaround to this bug is to check the first character in the TrusteeID path string. If it is NULL, then there will be no more trustee paths. Again, this is only true on the remote instance, not the local one.
  27442.  
  27443.  
  27444.  
  27445.  
  27446. FYI:    Disk Space, Windows, OS/2 and the Universe
  27447.                                      FYI
  27448.  
  27449. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27450.  
  27451.           TITLE:    Disk Space, Windows, OS/2 and the Universe
  27452.     DOCUMENT ID:    FYI.A.3204
  27453.            DATE:    14MAR91
  27454.         PRODUCT:    NA
  27455. PRODUCT VERSION:    NA
  27456.      SUPERSEDES:    NA
  27457.  
  27458.         SYMPTOM:    NA
  27459.  
  27460. ISSUE/PROBLEM
  27461.  
  27462.     Windows 3.0 and OS/2 1.2 create files that it can swap your memory out into and these "swapfiles can be very large". The OS/2 file is called swapper.dat and the windows one is called windows.swp. Since these files are used by OS/2 and Windows all the time and you are expected to run only in one or the other they leave these files on the disk expecting that you will need them. So for those of you who switch between windows and OS/2 might want to look on your hard disk for these two files and delete the one you don't need at the moment. They are created new if not there.
  27463.  
  27464.  
  27465.  
  27466.  
  27467. FYI:    C' address lesson, NWCINT/W v1.xx
  27468.                                      FYI
  27469.  
  27470. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27471.  
  27472.           TITLE:    C' address lesson, NWCINT/W v1.xx
  27473.     DOCUMENT ID:    FYI.A.2602
  27474.            DATE:    14MAR91
  27475.         PRODUCT:    NA
  27476. PRODUCT VERSION:    NA
  27477.      SUPERSEDES:    NA
  27478.  
  27479.         SYMPTOM:    NA
  27480.  
  27481. ISSUE/PROBLEM
  27482.  
  27483.     Here's a good one.  If you are using explicit type cast in your function calls to a function that expects a point, be careful.  The cast will assume you know what you are doing and override the prototype (which we all use religiously). Example:
  27484.  
  27485.     prototype for a function is: return_type func1(data_type *);
  27486.     ^
  27487.     |
  27488.     pointer expected
  27489.  
  27490.     then calling the function as:
  27491.  
  27492.     func1((data_type *)var);
  27493.  
  27494.     will pose problems if 'var' is not defined as a pointer. The correct syntax for this situation is;
  27495.  
  27496.     func1((data_type *)&var);
  27497.  
  27498.     Something to be aware of when explicit type casts are used.
  27499.  
  27500.  
  27501.  
  27502.  
  27503. FYI:    Close after Reset under Btrieve NLM v5.11
  27504.                                      FYI
  27505.  
  27506. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27507.  
  27508.           TITLE:    Close after Reset under Btrieve NLM v5.11
  27509.    DOCUMENT ID#:    FYI.A.2302
  27510.            DATE:    14MAR91
  27511.         PRODUCT:    NetWare Btrieve
  27512. PRODUCT VERSION:    NA
  27513.      SUPERSEDES:    NA
  27514.  
  27515.         SYMPTOM:    NA
  27516.  
  27517. ISSUE/PROBLEM
  27518.  
  27519.     I turned in a bug about this (bug #466), but you might want to hear about it before the patch comes out:
  27520.  
  27521.     In the Btrieve NLM (v 5.11, patched to #84), a close after a reset returns a status 20 instead of a status 3. This is incorrect because Brequest has not been unloaded, and an subsequent open operation works fine.
  27522.  
  27523.  
  27524.  
  27525.  
  27526. FYI:    C Create w/NULL key
  27527.                                      FYI
  27528.  
  27529. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27530.  
  27531.           TITLE:    C Create w/NULL key
  27532.    DOCUMENT ID#:    FYI.A.2301
  27533.            DATE:    14MAR91
  27534.         PRODUCT:    NA
  27535. PRODUCT VERSION:    NA
  27536.      SUPERSEDES:    NA
  27537.  
  27538.         SYMPTOM:    NA
  27539.  
  27540. ISSUE/PROBLEM
  27541.  
  27542.     The C create example in the Btrieve Programmer's Manual (p. C-9) needs to be amended if you want to have a null key value:
  27543.     The declaration of the KeySpecType struct doesn't include the byte necessary to declare the null value if that key is going to have one, but if there's no null value, that example is fine.
  27544.  
  27545.     The change in the KeySpecType fields should be from
  27546.  
  27547.     char reserve1 [5];  to  char null_val; char reserve1 [4];
  27548.  
  27549.  
  27550.  
  27551.  
  27552. FYI:    Print API problems  Net3.x and up
  27553.                                      FYI
  27554.  
  27555. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27556.  
  27557.           TITLE:    Print API problems  Net3.x and up
  27558.     DOCUMENT ID:    FYI.A.1511
  27559.            DATE:    14MAR91
  27560.         PRODUCT:    NA
  27561. PRODUCT VERSION:    NA
  27562.      SUPERSEDES:    NA
  27563.  
  27564.         SYMPTOM:    NA
  27565.  
  27566. ISSUE/PROBLEM
  27567.  
  27568.     There have recently been a rash of problems reported with print outs using the print APIs being followed by garbage.  If you are using the new 3.01x shells and you use a GetDefault(Specific)CaptureFlags and then issue a start capture, endcapture, or flush, every other print out will be followed by a bunch of garbage.  This is due to the fact that a GetDefaultCaptureFlags call LongSwaps the printer setup and reset buffers before the function returns, but the parallel function SetDefaultCaptureFlags does not do the LongSwap back before updating the shell.  This problem only occurs with the new shells.  I have turned it in as a bug.
  27569.  
  27570.  
  27571.  
  27572.  
  27573. FYI:    DOS 5C function call
  27574.                                      FYI
  27575.  
  27576. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27577.  
  27578.           TITLE:    DOS 5C function call
  27579.     DOCUMENT ID:    FYI.A.1510
  27580.            DATE:    14MAR91
  27581.         PRODUCT:    NA
  27582. PRODUCT VERSION:    NA
  27583.      SUPERSEDES:    NA
  27584.  
  27585.         SYMPTOM:    NA
  27586.  
  27587. ISSUE/PROBLEM
  27588.  
  27589.     DOS function 5C (lock/unlock file region) does not work the same under NetWare as it does under DOS with SHARE loaded.  The three parameters passed on this call are FileHandle, StartBYTE, and Length.  Under NetWare, you have to lock the EXACT same StartBYTE and Length in order for the locking to work properly, if the sections overlap, but do not match exactly, the lock with be successful to the 2nd workstation.  Under DOS and SHARE, if the sections overlap, the lock will NOT be successful from the 2nd workstation.
  27590.  
  27591.  
  27592.  
  27593.  
  27594. FYI:    Btrieve v5.10+ File Owner Names
  27595.                                      FYI
  27596.  
  27597. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27598.  
  27599.           TITLE:    Btrieve v5.10+ File Owner Names
  27600.    DOCUMENT ID#:    FYI.A.1210
  27601.            DATE:    14MAR91
  27602.         PRODUCT:    Btrieve
  27603. PRODUCT VERSION:    5.10+
  27604.      SUPERSEDES:    NA
  27605.  
  27606.         SYMPTOM:    NA
  27607.  
  27608. ISSUE/PROBLEM
  27609.  
  27610.     Here are the owner names assigned by NetWare to Btrieve files when they are created on a network drive using the different flavors of Btrieve (Workstation, NLM, VAP). You can verify this by doing an (NDIR filename) command.
  27611.  
  27612.     Workstation (DOS, Windows, OS/2):    NetWare assigns your userid as the owner (e.g. "JSMITH").
  27613.  
  27614.     NLM                             :    NetWare assigns the server name as the owner (e.g. "AUS-TEKPRO3")
  27615.  
  27616.     VAP                             :    NetWare assigns the VAP's userid as the owner(i.e.,"BTRIEVE_SERV")
  27617.  
  27618.  
  27619.  
  27620.  
  27621. FYI:    3C503 Default Configuration OS/2-1.2
  27622.                                      FYI
  27623.  
  27624. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27625.  
  27626.           TITLE:    3C503 Default Configuration OS/2-1.2
  27627.     DOCUMENT ID:    FYI.A.3203
  27628.            DATE:    13MAR91
  27629.         PRODUCT:    NA
  27630. PRODUCT VERSION:    NA
  27631.      SUPERSEDES:    NA
  27632.  
  27633.         SYMPTOM:    NA
  27634.  
  27635. ISSUE/PROBLEM
  27636.  
  27637.     3C503 Default Configuration the way our OS/2 1.2 requester expects it to be...
  27638.  
  27639.     I/O - 300 (HEX)
  27640.     MEM - C8000 (HEX)
  27641.     INT - 3
  27642.     NO DMA
  27643.     BNC (THIN WIRE)
  27644.  
  27645.     NOTE: if you want thick wire you need to add 1=DIX to the 3C503 lan drive line in the config.sys file.
  27646.  
  27647.     device=C3503.SYS 1=DIX
  27648.  
  27649.  
  27650.  
  27651.  
  27652. FYI:    3270 Tools v1.5
  27653.                                      FYI
  27654.  
  27655. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27656.  
  27657.           TITLE:    3270 Tools v1.5
  27658.     DOCUMENT ID:    FYI.A.2803
  27659.            DATE:    13MAR91
  27660.         PRODUCT:    NA
  27661. PRODUCT VERSION:    NA
  27662.      SUPERSEDES:    NA
  27663.  
  27664.         SYMPTOM:    NA
  27665.  
  27666. ISSUE/PROBLEM
  27667.  
  27668.     The NetWare 3270 HLLAPI Programmer's guide refers "HLSMGR.EXE" as "SMGR.EXE" and "HL3270cp.exe" as "3270cp.exe" and I don't know the reason for it. They probably should be prefixed with "HL", but they're not. Don't get them mixed up!
  27669.  
  27670.  
  27671.  
  27672.  
  27673. FYI:    Xtrieve PLUS v4.01 security
  27674.                                      FYI
  27675.  
  27676. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27677.  
  27678.           TITLE:    Xtrieve PLUS v4.01 security
  27679.    DOCUMENT ID#:    FYI.A.1903
  27680.            DATE:    13MAR91
  27681.         PRODUCT:    Xtrieve PLUS
  27682. PRODUCT VERSION:    4.01
  27683.      SUPERSEDES:    NA
  27684.  
  27685.         SYMPTOM:    NA
  27686.  
  27687. ISSUE/PROBLEM
  27688.  
  27689.     (Note - Btrieve version 5.10)
  27690.  
  27691.     When the BUTIL -stat operation (Btrieve operation 15) is performed on any Xtrieve data dictionary file (DDF file), what appears on the screen is the internal structure of the file.  (Appendix B of the Xtrieve PLUS manual contains the internal structures of each of the seven data dictionary files.)
  27692.  
  27693.     When security is installed on a set of Xtrieve's dictionary files, Btrieve assigns an owner name (NOT documented in the manual) to each of the files.  This owner name is the same as the password of the Master user in Xtrieve.  As a consequence, if a non-Master-user performs the BUTIL -stat operation (or Btrieve operation 15) on a DDF, Btrieve returns a status 51 (Invalid Owner Name).  The Master-user would have to provide the password as the owner name for the file.  If this Master Password is changed, the owner names on the DDF files are changed to reflect the change in password.
  27694.  
  27695.     In other words, when sceurity is not installed, the DDFs can only be accessed in Read-Only mode without having to provide the owner name. When security is installed, to have any kind of access to the DDF files, the user must know the owner name.
  27696.  
  27697.  
  27698.  
  27699.  
  27700. FYI:    OS/2 v1.2 and v1.3 Drive Mappings
  27701.                                      FYI
  27702.  
  27703. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27704.  
  27705.           TITLE:    OS/2 v1.2 and v1.3 Drive Mappings
  27706.     DOCUMENT ID:    FYI.A.1220
  27707.            DATE:    13MAR91
  27708.         PRODUCT:    NA
  27709. PRODUCT VERSION:    NA
  27710.      SUPERSEDES:    NA
  27711.  
  27712.         SYMPTOM:    NA
  27713.  
  27714. ISSUE/PROBLEM
  27715.  
  27716.     There are some major differences in how network drive mappings are handled under OS/2 as compared to DOS. When you log in under OS/2 and have your login script map drives (by the way, you cannot map search drives under OS/2), it will create a map root to whatever directory you specify.
  27717.  
  27718.     For example, if your login script does:
  27719.     MAP f:=FS1\SYS:dir1\dir2
  27720.  
  27721.     If you do a MAP in an OS/2 window you will see
  27722.     DRIVE  F:= FS1\SYS:DIR1\DIR2    \
  27723.  
  27724.     When the \ is at the right, this means that a map root is in effect and you cannot access any subdirectories below DIR2 when using the F: drive.
  27725.  
  27726.     This definitely reduces the flexibility of the login script when mapping drives. The workaround is to map drives to all of the volumes you will use in your login script and then, in your autoexec batch file, go to each drive and change directories to the directory you want that drive mapped to.
  27727.  
  27728.  
  27729.  
  27730.  
  27731. FYI:    XQL version 2.11, XDDCreate function
  27732.                                      FYI
  27733.  
  27734. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27735.  
  27736.           TITLE:    XQL version 2.11, XDDCreate function
  27737.    DOCUMENT ID#:    FYI.A.1808
  27738.            DATE:    12MAR91
  27739.         PRODUCT:    XQL
  27740. PRODUCT VERSION:    ERSION
  27741.      SUPERSEDES:    NA
  27742.  
  27743.         SYMPTOM:    NA
  27744.  
  27745. ISSUE/PROBLEM
  27746.  
  27747.      When creating a table using the primitive functions one follows the description of the bFldBuf parameter described in Chapter 7 page 36.  For those of us who are avid C programmers be aware that the Field Name must be 20 characters long.  The manual says that you can NULL terminate the string and that is true but XQLP is expecting a 20 byte field to parse regardless of where the NULL is.
  27748.  
  27749.  
  27750.  
  27751.  
  27752. FYI:    NetCheck NLM v1.0
  27753.                                      FYI
  27754.  
  27755. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27756.  
  27757.           TITLE:    NetCheck NLM v1.0
  27758.     DOCUMENT ID:    FYI.A.4002
  27759.            DATE:    11MAR91
  27760.         PRODUCT:    NA
  27761. PRODUCT VERSION:    NA
  27762.      SUPERSEDES:    NA
  27763.  
  27764.         SYMPTOM:    NA
  27765.  
  27766. ISSUE/PROBLEM
  27767.  
  27768.     When using Netcheck NLM by Numega Technology, a problem of cleared connections might occur when Netcheck NLM is running on the server.
  27769.  
  27770.     If this problem occurs, do the following:
  27771.  
  27772.     There are 3 parameters /r/p/w and if you remove /w, the problem with cleared connections will not occur.
  27773.  
  27774.     /w is to prevent other NLMs from writing into write-protected memory.
  27775.  
  27776.  
  27777.  
  27778.  
  27779. FYI:    HLLAPI and Memory   (HLSMGR (HLLAPI MANAGER)) v2.2.a
  27780.                                      FYI
  27781.  
  27782. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27783.  
  27784.           TITLE:    HLLAPI and Memory   (HLSMGR (HLLAPI MANAGER)) v2.2.a
  27785.     DOCUMENT ID:    FYI.A.2802
  27786.            DATE:    11MAR91
  27787.         PRODUCT:    NA
  27788. PRODUCT VERSION:    NA
  27789.      SUPERSEDES:    NA
  27790.  
  27791.         SYMPTOM:    NA
  27792.  
  27793. ISSUE/PROBLEM
  27794.  
  27795.     Some functions in HLLAPI require the use of large amounts of storage.  If your application will use Function 23, Start Host Notification, you may want to use some memory obtained from the HLSMGR for this function.  Or, you may provide Function 23 with the address of memory area in your program. To obtain memory from HLSMGR at DOS prompt enter HLSMGR n,  where n is number of bytes of memory to be managed by the HLSMGR.  The number of bytes can be from six to the total amount of free memory remaining before the HLSMGR program is executed and subtract 30 kilobytes approximately for the HLSMGR itself.
  27796.  
  27797.  
  27798.  
  27799.  
  27800. FYI:    PCOX APIs (IBM LOW LEVEL API'S) v1.5
  27801.                                      FYI
  27802.  
  27803. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27804.  
  27805.           TITLE:    PCOX APIs (IBM LOW LEVEL API'S) v1.5
  27806.     DOCUMENT ID:    FYI.A.2801
  27807.            DATE:    11MAR91
  27808.         PRODUCT:    NA
  27809. PRODUCT VERSION:    NA
  27810.      SUPERSEDES:    NA
  27811.  
  27812.         SYMPTOM:    NA
  27813.  
  27814. ISSUE/PROBLEM
  27815.  
  27816.     Novell's PCOX products supports three IBM API's: the Low Level Language API (LLLAPI or LLAPI), the High-Level Language API (HLLAPI), and the Entry-Level Emulation High Level Language API (EEHLLAPI).  All three IBM API's use a software interrupt-driven technique similar to the Novell's PCOX API.  The PCOX interface uses DOS Interrupt 6Fh by default where as IBM LLLAPI uses Interrupt 7Ah.  When an Interrupt 7Ah is invoked, CXIISAPI which is an intercept program resides in memory between the PCOX control program and the IBM HLLAPI application translates it to an equivalent PCOX 6F interrupt and converts to register usage appropriately.  The interrupt is then processed as though it were a normal PCOX API function call.
  27817.  
  27818.  
  27819.  
  27820.  
  27821. FYI:    Execute only files in Windows v3.0, NWCINT/W v1.x
  27822.                                      FYI
  27823.  
  27824. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27825.  
  27826.           TITLE:    Execute only files in Windows v3.0, NWCINT/W v1.x
  27827.     DOCUMENT ID:    FYI.A.2601
  27828.            DATE:    11MAR91
  27829.         PRODUCT:    NA
  27830. PRODUCT VERSION:    NA
  27831.      SUPERSEDES:    NA
  27832.  
  27833.         SYMPTOM:    NA
  27834.  
  27835. ISSUE/PROBLEM
  27836.  
  27837.     When a windows application is flagged as 'execute only' it will not run in Windows.  It will not load or by any means start its execution.  The reason for flagging a file 'execute only' is to protect is against copyrights etc. Lack of capability will definitely lead to future problems (more calls that is).
  27838.  
  27839.     This problem has been reported to Provo.
  27840.  
  27841.  
  27842.  
  27843.  
  27844. FYI:    Btrieve v5.10 Update/Delete Documentation
  27845.                                      FYI
  27846.  
  27847. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27848.  
  27849.           TITLE:    Btrieve v5.10 Update/Delete Documentation
  27850.    DOCUMENT ID#:    FYI.A.1714
  27851.            DATE:    11MAR91
  27852.         PRODUCT:    Btrieve
  27853. PRODUCT VERSION:    5.10
  27854.      SUPERSEDES:    NA
  27855.  
  27856.         SYMPTOM:    NA
  27857.  
  27858. ISSUE/PROBLEM
  27859.  
  27860.     The following information should be included in the Btrieve Operations chapter of the Btrieve Programmer's Manual, in the sections for Update and Delete:  In order to update (delete) a record while inside a Btrieve transaction, that record must have been retrieved while inside that transaction, and not before.
  27861.  
  27862.     Also, status 83 - Read Outside a Transaction, should be included in the list of possible nonzero status codes that may be returned by an update or delete operation.
  27863.  
  27864.  
  27865.  
  27866.  
  27867. FYI:    MS C/Turbo C, Memory Models, and Btrieve v4.11+
  27868.                                      FYI
  27869.  
  27870. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  27871.  
  27872.           TITLE:    MS C/Turbo C, Memory Models, and Btrieve v4.11+
  27873.    DOCUMENT ID#:    FYI.A.1405
  27874.            DATE:    11MAR91
  27875.         PRODUCT:    Btrieve
  27876. PRODUCT VERSION:    4.11+
  27877.      SUPERSEDES:    NA
  27878.  
  27879.         SYMPTOM:    NA
  27880.  
  27881. ISSUE/PROBLEM
  27882.  
  27883.     This FYI is to help you with one common complaint that you might hear from yourself as well as a customer, when you are programming with Microsoft C or Turbo C and using Btrieve versions 4.11, 5.00 and 5.10a. The actual interfaces used are MSCXBTRV.C and TURCBTRV.C.
  27884.  
  27885.     Everything appears to be working correctly; the application compiles without an error and seems to run OK. Btrieve returns a status 0 on all of the calls, but nothing is actually being done.
  27886.  
  27887.     If this happens, you might want to check the memory model that is being used.  It could be that the application is compiled with a large memory model, but the interface hasn't been changed; you'll need to uncomment the line in the interface for LARGE model.
  27888.  
  27889.     So,     /* #define LMODEL */
  27890.  
  27891.     should really be
  27892.  
  27893.                #define LMODEL
  27894.  
  27895.     if you're compiling with Large Model.
  27896.  
  27897.  
  27898.  
  27899.  
  27900. FYI:    Overview of IPX/SPX Init in Windows NWCInt/W v1.1
  27901.                                      FYI
  27902.  
  27903. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27904.  
  27905.           TITLE:    Overview of IPX/SPX Init in Windows NWCInt/W v1.1
  27906.     DOCUMENT ID:    FYI.A.1219
  27907.            DATE:    11MAR91
  27908.         PRODUCT:    NA
  27909. PRODUCT VERSION:    NA
  27910.      SUPERSEDES:    NA
  27911.  
  27912.         SYMPTOM:    NA
  27913.  
  27914. ISSUE/PROBLEM
  27915.  
  27916.     When using the Windows API communications calls (IPX/SPX), the memory allocation is handled quite differently than with the DOS C-Interface.
  27917.  
  27918.     As you know, IPX and SPX require that ECB's reside in low memory (below 1 meg). Rather than have your Windows program handle the copying of data from your Windows data segment to low memory, the Windows API's will do this for you. It will also handle the management of the ECB's for different tasks running concurrently under Windows. This is great but it complicates the Initialization calls somewhat. Below is a brief description of new parameters and return codes for the initialization functions. Most of this information is described in great detail in chapter 5 of the SDK manuals.
  27919.  
  27920.     ******************************************************************
  27921.  
  27922.     For both IPXInitialize and SPXInitialize, there are 3 new parameters:
  27923.  
  27924.     IPXTaskID :allows the IPXSPX.DLL to maintain resources for different tasks
  27925.     Their are 3 different values for this parm; each tells IPX/SPX to manage memory differently. In all cases, the return value is the TaskID for that block of memory and must be sent on all subsequent calls to IPX/SPX.
  27926.     0x0000000: This allocates 1 block of memory for each application
  27927.     0xFFFFFFE: This allows each application to have multiple allocations of memory.
  27928.     0xFFFFFFF: This allows a DLL (a Print Server, for example) to manage a pool of ECB's for multiple applications that are making calls to the DLL.
  27929.  
  27930.     maxECBs   :specifies the maximum number of outstanding ECB's that will be submitted to IPX
  27931.     maxPacketSize: Maximum size packet that can be sent by your application
  27932.  
  27933.     Also there is a new function call, IPXSPXDeInit (), which deallocates all memory associated with a particular TaskID.
  27934.  
  27935.     New Return Codes for SPXInitialize and IPXInitialize
  27936.  
  27937.     Under the DOS C-Interface, SPXInitialize returned 1 of 2 values, either SPX was installed (255) or SPX was not installed (0). NOTE that a non-zero status in this case indicates success!!
  27938.  
  27939.     Under the Windows C-Interface, because there are more variables regarding initialization, there are other return codes which indicate failure to initialize. Some of them I'm not sure of the specific cause.
  27940.  
  27941.     NO_MGM_MEMORY   : 0xF0
  27942.     IPXSPX_NOT_INIT : 0xF1
  27943.     NO_DOS_MEMORY   : 0xF2   Not enough low memory available.
  27944.     NO_FREE_ECB     : 0xF3
  27945.     LOCK_FAILED     : 0xF4
  27946.     OVER_MAX_LIMIT  : 0xF5   You are asking for too many ECB's to be allocated.
  27947.     IPXSPX_PREV_INIT: 0xF6   You have previously initialized IPX or SXP.
  27948.  
  27949.     Note: There is a good communications example, WinChat, which will be shipped with the new Windows C-Interface SDK.
  27950.  
  27951.     ADDENDUM: Thu 14-Mar-91  1:38pm    David Garrison Subject     FYI - Windows API Comm Errors NWCInt/W v1.1
  27952.  
  27953.     This is an addition to a previous FYI sent out the first week of March, 1991, titled Windows IPXSPXInit Changes.
  27954.  
  27955.     New return codes for the Communication Initialization changes were partially documented in the previous FYI; here is more information on those codes.
  27956.  
  27957.     NO_MGMT_MEMORY       : 0xF0 means that the DLL was not able to allocate or reallocate memory for its instance table NO_FREE_ECB
  27958.                          : 0xF3 will occur when you have maxECBs outstanding and try to submit another ECB to IPX
  27959.     LOCK_FAILED          : 0xF4 occurs when the DLL is not able to lock the memory for the instance table
  27960.     OVER_MAX_LIMIT       : 0xF5 means that the packet size you have requested is larger than that allowed by the topology you are using
  27961.  
  27962.  
  27963.  
  27964.  
  27965. FYI:    OS/2 v1.2 API's Connection Number Type Mismatch
  27966.                                      FYI
  27967.  
  27968. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  27969.  
  27970.           TITLE:    OS/2 v1.2 API's Connection Number Type Mismatch
  27971.     DOCUMENT ID:    FYI.A.1218
  27972.            DATE:    09MAR91
  27973.         PRODUCT:    NA
  27974. PRODUCT VERSION:    NA
  27975.      SUPERSEDES:    NA
  27976.  
  27977.         SYMPTOM:    NA
  27978.  
  27979. ISSUE/PROBLEM
  27980.  
  27981.     In the header file for the OS/2 API's, the CONNECTION NUMBER is defined as different types for the following calls. Obviously, defining the variable as either BYTE or WORD will generate a compiler warning.
  27982.  
  27983.     /* GetConnectionNumber */
  27984.     extern WORD far pascal NWGetConnectionNumber(
  27985.     WORD,                 /* Connection ID*/
  27986.     ->>     WORD far * ); /* Server connection number*/
  27987.  
  27988.     /* GetConnectionInformation */
  27989.     extern WORD far pascal NWGetConnectionInformation(
  27990.     WORD,         /* Connection ID*/
  27991.     ->>     BYTE, /* Server connection number*/
  27992.     char far *,   /* Client object name*/
  27993.     WORD far *,   /* Client object type*/
  27994.     DWORD far *,  /* Client object ID*/
  27995.     BYTE far * ); /* Client login time*/
  27996.  
  27997.     A good way to handle this in your program is as follows:
  27998.  
  27999.     WORD connectionNumber
  28000.  
  28001.     ccode = NWGetConnectionNumber(connectionID,
  28002.     &connectionNumber);
  28003.  
  28004.     ccode = NWGetConnectionInformation( connectionID,
  28005.     (BYTE) connectionNumber,
  28006.     objectName,
  28007.     &objectType,
  28008.     &objectID,
  28009.     loginTime);
  28010.  
  28011.  
  28012.  
  28013.  
  28014. FYI:    NetWare SQL Front-Ends
  28015.                                      FYI
  28016.  
  28017. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28018.  
  28019.           TITLE:    NetWare SQL Front-Ends
  28020.    DOCUMENT ID#:    FYI.A.8001
  28021.            DATE:    08MAR91
  28022.         PRODUCT:    NetWare SQL
  28023. PRODUCT VERSION:    NA
  28024.      SUPERSEDES:    NA
  28025.  
  28026.         SYMPTOM:    NA
  28027.  
  28028. ISSUE/PROBLEM
  28029.  
  28030.     Here's a list of third party front-ends for NetWare SQL:
  28031.  
  28032.     RaSQL   Development Tool        Communications Horizons
  28033.                                     212-222-2222
  28034.  
  28035.     SQLFile Development Tool        Vinzant
  28036.                                     219-763-3881
  28037.  
  28038.     R&R     Reporting Tool          Concentric
  28039.                                     508-366-1122
  28040.  
  28041.     Planet  Network Design Tool     Network Communication
  28042.                                     201-307-9000
  28043.  
  28044.     ISICAD  Computer-Aided Design   ISICAD
  28045.                                     714-533-8910
  28046.  
  28047.     EnFOLD  Document Management     Network Management
  28048.                                     800-526-8737
  28049.  
  28050.     1-2-3   Spreadsheet             Lotus/Novell
  28051.     Datalens                        800-REDWORD
  28052.  
  28053.  
  28054.  
  28055.  
  28056. FYI:    Corrupted Data Buffer with Microsoft Basic PDS 7.X & BC7RBTRV.OBJ
  28057.                                      FYI
  28058.  
  28059. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28060.  
  28061.           TITLE:    Corrupted Data Buffer with Microsoft Basic PDS 7.X & BC7RBTRV.OBJ
  28062.    DOCUMENT ID#:    FYI.A.2101
  28063.            DATE:    07MAR91
  28064.         PRODUCT:    NA
  28065. PRODUCT VERSION:    NA
  28066.      SUPERSEDES:    NA
  28067.  
  28068.         SYMPTOM:    NA
  28069.  
  28070. ISSUE/PROBLEM
  28071.  
  28072.     There seems to be a problem with the data buffer being returned on Btrieve GET operations using the BC7RBTRV.OBJ interface. The symptoms are spaces and other characters being inserted into the data buffer at various byte positions. The problem seems to be related to the BASIC compiler options, particularly the combination of the /o and the /fs options. The /o compiler option tells the compiler to use the default stand alone library instead of the run-time library. The /fs parameter enables the use of far strings. If you receive a call from a customer with a similar type of problem, have them recompile their program without the /fs parameter. If the problem goes away then you can send them the latest BC7RBTRV.OBJ interface dated 11-26-90.
  28073.  
  28074.     This interface can be found in the aus-tekpro3\sys:pat\btr\dos\510\basic7 directory. This interface is a patched version of the BC7RBTRV.OBJ interface dated 4-13-90 which fixed the following problems:
  28075.  
  28076.     1.    Bytes 59-60 of the databuffer were being overwritten.
  28077.  
  28078.     2.    Chaining to another program would hang the workstation.
  28079.  
  28080.  
  28081.  
  28082.  
  28083. FYI:    Windows Trick/Single Instancing
  28084.                                      FYI
  28085.  
  28086. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28087.  
  28088.           TITLE:    Windows Trick/Single Instancing
  28089.     DOCUMENT ID:    FYI.A.1608
  28090.            DATE:    07MAR91
  28091.         PRODUCT:    NA
  28092. PRODUCT VERSION:    NA
  28093.      SUPERSEDES:    NA
  28094.  
  28095.         SYMPTOM:    NA
  28096.  
  28097. ISSUE/PROBLEM
  28098.  
  28099.     To keep a Windows user from popping up a second copy of your program, use the following code:
  28100.  
  28101.     if (!hPrevInstance)
  28102.     {
  28103.     .
  28104.     .  // Set up and register classes, etc., here
  28105.     .
  28106.     }
  28107.     else  // Must be old copy of program running
  28108.     {
  28109.     // Get hWnd handle of previous instance's main Window
  28110.     GetInstanceData(hPrevInstance, (NPSTR)&hWnd, sizeof hWnd);
  28111.  
  28112.     // Tell previous instance to open its window
  28113.     ShowWindow(hWnd, SW_SHOWNORMAL);
  28114.  
  28115.     // Tell previous instance to pop its window to the top
  28116.     BringWindowToTop(hWnd);
  28117.  
  28118.     // Exit this instance of program
  28119.     return 0;
  28120.     }
  28121.  
  28122.     This is especially useful if, for instance, you are allocating resources that cannot be allocated dynamically (ex: if you needed to open a specific, well known, IPX socket that was hard-coded into your program; or your program needed access to hardware whose access was not synchronized, or was synchronized incorrectly, by Windows).
  28123.  
  28124.  
  28125.  
  28126.  
  28127. FYI:    EMS vs XMS
  28128.                                      FYI
  28129.  
  28130. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28131.  
  28132.           TITLE:    EMS vs XMS
  28133.     DOCUMENT ID:    FYI.A.1607
  28134.            DATE:    07MAR91
  28135.         PRODUCT:    NA
  28136. PRODUCT VERSION:    NA
  28137.      SUPERSEDES:    NA
  28138.  
  28139.         SYMPTOM:    NA
  28140.  
  28141. ISSUE/PROBLEM
  28142.  
  28143.     To understand what EMS and XMS are requires an understanding of the history of PC architectures.  Once upon a time, there was an operating system called CPM.  CPM machines could address a whopping 64K!  This was all that the Intel 8080 processor could address (another processor, the Zilog Z-80, had something to do with this as well, but I won't go into that).
  28144.  
  28145.     Then came the 8088 processor.  It could address 1 MB of memory by using segment registers.  This is when DOS and the IBM PC came into the picture.  DOS was based on the 8088 processor and, therefore, DOS could also address 1 MB of memory.  The "lower" 640K of address space (0-9FFFF hex) was reserved for RAM and the upper 384K (A0000- FFFFF hex) was reserved for ROM.
  28146.  
  28147.     Then came the 8086 processor.  All it does different from the 8088 is process 16-bits at a time, which makes it somewhat faster.
  28148.  
  28149.     Then came the 80286 processor.  This is when extended memory came into the picture.  This is also when the IBM AT was introduced. The machine could now see up to 16 MB of memory, but DOS couldn't! So what good was this extra memory address space?  Well, not much, for a long time.  All it could really be used for is a ram disk or disk-cache, and then only by one program.  The memory had to be accessed by switching the 80286 to protected mode, and this was incompatible with DOS and the normal memory addressing mode.
  28150.  
  28151.     Then came Expanded memory (aka EMS, EEMS, LIM memory, Lotus memory, bank-switched memory, committee-memory).  This memory was placed on a special EMS card and a special EMS driver was loaded in the config.sys at start-up time.  EMS memory could be switched in and out of the normal 1 MB address space of 8088-and-up processors and programs could share the memory without running over each other.
  28152.  
  28153.     Then came the 80386 processor.  It was compatible with the 8088/8086 because it normally ran in the "1 MB mode" and the 80286 processor because it could run in protected mode.  But, it had, of course, a new mode, sometimes referred to as Enhanced mode. Enhanced mode could address 4 GB (1 GB = 1,024 MB).  In addition, the 80386 could bank-switch memory.  This allows 80386 machines to emulate EMS memory, with a special EMS driver.  But, this EMS memory is not safe from programs that access extended memory! That's because the 80386 is using the same extended memory for its emulation, and there's no control (in DOS) to keep other programs from stepping on that memory.
  28154.  
  28155.     So what happened to XMS memory?  Well, XMS memory is really extended memory, with a driver (usually HIMEM.SYS).  The driver allows programs (who all must talk to the driver) to share extended memory much like they can share expanded memory.  There is one drawback to this method, though.  If a program doesn't go through the driver, the driver can't do anything about it.  In EMS memory, the only way to access the memory is through the EMS driver.  In XMS memory, there are "back-doors" that cannot be shut.
  28156.  
  28157.     So how do I remember whether I need/have EMS or XMS memory?  To begin with, associate XMS memory with extended memory.  ExTended memory (notice the 'T') came with the IBM At (notice the 't') and is accessible via the 80286 protected mode.  Next, associate EMS memory with expanded memory.  ExPanded memory (notice the 'P') came when Lotus, Intel, and Micrsoft formed a Pact (notice the 'P'). It's accessible via EMS drivers, and requires special hardware on 8088/8086/80286 machines, or can be emulated on 80386 machines.
  28158.  
  28159.     So what applications use what memory?  Btrieve for DOS 5.10a and up correctly use expanded memory.  Older versions of Btrieve for DOS can use expanded memory, but should not share it with another application (use the /e switch to keep older versions from trying to use expanded memory, especially when another program needs to use it as well).  NetWare uses extended memory.  Microsoft Windows 3.0 uses either extended memory or expanded memory, and can emulate both types in DOS boxes.  Lotus 123 v2.01 and many other spreadsheet programs use expanded memory.  DOS extenders and programs that use DOS extenders (like Lotus 123 v3.xx) use extended memory.  Ram disk utilities typically use extended memory (especially VDISK, supplied with most DOS machines).  Disk caching software can usually access either extended or expanded memory.
  28160.  
  28161.  
  28162.  
  28163.  
  28164. FYI:    AFP Name Length
  28165.                                      FYI
  28166.  
  28167. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28168.  
  28169.           TITLE:    AFP Name Length
  28170.     DOCUMENT ID:    FYI.A.1606
  28171.            DATE:    07MAR91
  28172.         PRODUCT:    NA
  28173. PRODUCT VERSION:    NA
  28174.      SUPERSEDES:    NA
  28175.  
  28176.         SYMPTOM:    NA
  28177.  
  28178. ISSUE/PROBLEM
  28179.  
  28180.     The documentation for AFP Services conflicts with the documentation in Name Space Services for Mac name spaces.  The Mac name space structure allows Mac file names to be 32 bytes in length, with a preceding length specifier.  The AFP Services documentation states that Mac names may not be longer that 31 bytes in length.  That's wrong.  Not only can Mac names be 32 bytes in length, but the AFP structures set up in NAT.H allow for 32 byte names as well.  The only time this presents a problem is if your code copies one of these names into a buffer initialized to only 32 bytes.  So set up your own buffers to 33 bytes and all is well.
  28181.  
  28182.     As an additional tidbit, the Inside Macintosh documentation (II-81) says a file name can be 1 to 255 printing characters, but also states that the Finder will generate an error for any names longer than 64 bytes!  The Apple-Talk File Protocol (AFP) allows only 32 character names (Inside Macintosh, IV-183).
  28183.  
  28184.  
  28185.  
  28186.  
  28187. FYI:    IPXGetInternetworkAddress
  28188.                                      FYI
  28189.  
  28190. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28191.  
  28192.           TITLE:    IPXGetInternetworkAddress
  28193.     DOCUMENT ID:    FYI.A.3307
  28194.            DATE:    06MAR91
  28195.         PRODUCT:    NA
  28196. PRODUCT VERSION:    NA
  28197.      SUPERSEDES:    NA
  28198.  
  28199.         SYMPTOM:    NA
  28200.  
  28201. ISSUE/PROBLEM
  28202.  
  28203.     It has been reported that IPXGetInternetworkAddress only returns the node address if the shell is not loaded.  This is not correct.  The network address will also be reported if the station receives a broadcast message from the local server.  However, a developer that requires the network address should not count on a broadcast being received by the station.  The developer's application should send out a RIF (Routing Information) packet. This will cause the server to respond and broadcast its existence on the network.
  28204.  
  28205.  
  28206.  
  28207.  
  28208. FYI:    SPX Client Applications in a Non-Dedicated DOS Box
  28209.                                      FYI
  28210.  
  28211. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28212.  
  28213.           TITLE:    SPX Client Applications in a Non-Dedicated DOS Box
  28214.     DOCUMENT ID:    FYI.A.3306
  28215.            DATE:    06MAR91
  28216.         PRODUCT:    NA
  28217. PRODUCT VERSION:    NA
  28218.      SUPERSEDES:    NA
  28219.  
  28220.         SYMPTOM:    NA
  28221.  
  28222. ISSUE/PROBLEM
  28223.  
  28224.     SPX client applications should not be written to run in the DOS Box of a non-dedicated file server.  SPX server applications will normally function properly, but may seriously degrade operating system performance.  The SPXEstablishConnection call, required for client communications with the server, conflicts with routing buffers already set aside by the operating system.  A call to SPXEstablishConnection will return a status 255 "No Response From Server".
  28225.  
  28226.  
  28227.  
  28228.  
  28229. FYI:    Btrieve NLM v5.11 & v5.15 Backups
  28230.                                      FYI
  28231.  
  28232. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28233.  
  28234.           TITLE:    Btrieve NLM v5.11 & v5.15 Backups
  28235.    DOCUMENT ID#:    FYI.A.1005
  28236.            DATE:    06MAR91
  28237.         PRODUCT:    NetWare Btrieve
  28238. PRODUCT VERSION:    NA
  28239.      SUPERSEDES:    NA
  28240.  
  28241.         SYMPTOM:    NA
  28242.  
  28243. ISSUE/PROBLEM
  28244.  
  28245.     If you are running the Btrieve NLM v5.11 or v5.15 under NetWare v3.10a or NetWare v3.11 and if in your BSETUP application you have specified a value greater than 0 for the Number Of Transactions a BTRIEVE.TRN gets created in the \SYS:SYSTEM directory. When the Btrieve NLM is loaded either manually or with BSTART.NCF the BTRIEVE.TRN file is opened by the Btrieve NLM and kept open until the Btrieve NLM is unloaded from server memory.  It remains open for the entire time because of performance considerations.  However, because it remains open all of the time, when you run your backup utility it will fail at the point you attempt to Close & then Reopen the Bindery.
  28246.  
  28247.     You then have two possible options available:
  28248.  
  28249.     1.    Set Number Of Transactions = 0 so the BTRIEVE.TRN file isn't created or used when the Btrieve NLM is loaded. However, no workstations may issue a Begin transaction operation.
  28250.  
  28251.     2.    Unload the Btrieve NLM before you run the backup utility.
  28252.  
  28253.  
  28254.  
  28255.  
  28256. FYI:    Status 85 on Btrieve v5.10 Update of Record Locked by a Transaction
  28257.                                      FYI
  28258.  
  28259. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28260.  
  28261.           TITLE:    Status 85 on Btrieve v5.10 Update of Record Locked by a Transaction
  28262.    DOCUMENT ID#:    FYI.A.2004
  28263.            DATE:    05MAR91
  28264.         PRODUCT:    Btrieve
  28265. PRODUCT VERSION:    5.10
  28266.      SUPERSEDES:    NA
  28267.  
  28268.         SYMPTOM:    NA
  28269.  
  28270. ISSUE/PROBLEM
  28271.  
  28272.     The Btrieve Documentation states that if a file is locked by a transaction and another application tries to update a record in this file, upon issuing the update the updating application will wait until the transaction is complete to perform the update.  This is true for Btrieve for DOS Networks, but not for the VAP or NLM.  Upon issuing the update, the VAP and NLM will return a status 85 (file in use).
  28273.  
  28274.     When explaining locks, the Btrieve documentation also states that if a file is locked when an application attempts to open it, Btrieve normally waits until the file is available before executing the Open operation unless a nowait lock (+200 or +400) is specified on the open.  This is opposite of what actually happens.  Btrieve will, by default, return a status 85 if a file is locked when an application tries to open it.  In order for Btrieve to wait, you must specify a wait (+100 or +300) on the open.
  28275.  
  28276.     This brings up one more topic.  If a file is in use by a transaction and another application tries to open it, Btrieve for DOS Networks will return a status 85 on the open, but the VAP or NLM will open the file successfully.
  28277.  
  28278.  
  28279.  
  28280.  
  28281. FYI:    Xtrieve v4.01 Security with Duplicate Field Names
  28282.                                      FYI
  28283.  
  28284. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28285.  
  28286.           TITLE:    Xtrieve v4.01 Security with Duplicate Field Names
  28287.    DOCUMENT ID#:    FYI.A.2003
  28288.            DATE:    05MAR91
  28289.         PRODUCT:    Xtrieve PLUS
  28290. PRODUCT VERSION:    4.01
  28291.      SUPERSEDES:    NA
  28292.  
  28293.         SYMPTOM:    NA
  28294.  
  28295. ISSUE/PROBLEM
  28296.  
  28297.     With Xtrieve 4.01 security active, problems can arise if two or more files in the same dictionary have fields with the same name, and a user has been defined with different rights to each of these files.
  28298.  
  28299.     The problem stems from the fact that when Xtrieve checks for the rights of a field, it only passes the field name to XQLP; the file name is not passed.  So, XQLP will return the rights to the first field it comes across with this name - there is no way to tell from which file the rights will come.  The results can be varied: fields won't show up in views when they should, they will show up when they shouldn't, they can't be modified when the user should be able to modify them and vice versa.
  28300.  
  28301.     This problem is unpatchable for v4.01, but a work around is to give every field in a dictionary a distinct name.
  28302.  
  28303.  
  28304.  
  28305.  
  28306. FYI:    Btrieve VAP v5.10 & Possible Cause for Status 20 / 91
  28307.                                      FYI
  28308.  
  28309. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28310.  
  28311.           TITLE:    Btrieve VAP v5.10 & Possible Cause for Status 20 / 91
  28312.    DOCUMENT ID#:    FYI.A.1004
  28313.            DATE:    01MAR91
  28314.         PRODUCT:    NetWare Btrieve
  28315. PRODUCT VERSION:    AP
  28316.      SUPERSEDES:    NA
  28317.  
  28318.         SYMPTOM:    NA
  28319.  
  28320. ISSUE/PROBLEM
  28321.  
  28322.     If after trying to initially install the Btrieve VAP a customer should encounter Status 20s or 91s ask them if by chance they ran the BSETUP from a local hard drive.  If so, it is possible that when they installed it, the proper entries were not made into the server bindery when BSERVER.VAP was actually copied into the SYSTEM directory.  This should only occur when BSETUP is trying to copy the BSERVER.VAP from a local drive over to some network drive.
  28323.  
  28324.     The recommended procedure for installing the Btrieve VAP is to copy all of the files from the distribution disks into a temporary directory just below SYSTEM, and then run BSETUP from inside that directory.  This will ensure that the entries into the bindery are made properly.
  28325.  
  28326.     Another symptom of this would be if when you issue a USERLIST from a station you only see one Btrieve_Server connection instead of the normal two with version 5.10 of the Btrieve VAP.
  28327.  
  28328.  
  28329.  
  28330.  
  28331. FYI:    Btrieve 386 NLM Page Size Default
  28332.                                      FYI
  28333.  
  28334. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28335.  
  28336.           TITLE:    Btrieve 386 NLM Page Size Default
  28337.    DOCUMENT ID#:    FYI.A.1003
  28338.            DATE:    01MAR91
  28339.         PRODUCT:    NetWare Btrieve
  28340. PRODUCT VERSION:    NA
  28341.      SUPERSEDES:    NA
  28342.  
  28343.         SYMPTOM:    NA
  28344.  
  28345. ISSUE/PROBLEM
  28346.  
  28347.     Default Load Parameters Documentation Error
  28348.  
  28349.     The Btrieve 386 Installation and Operation manual indicates that the default for the Page Size load parameter in the Btrieve NLM is 4096 bytes. However, this is NOT accurate.  The default Page Size parameter is actually 1024 bytes. Please make note of this on all of your current documentation.
  28350.  
  28351.     The Btrieve VAP v5.10 documentation is correct. It's default Page Size load parameter is 4096 bytes.
  28352.  
  28353.     Keep in mind that this error was propagated in several places, like the BULLETS article about Btrieve NLM Load Parameters, various FYIs, and several ready reference sheets which many of us use.
  28354.  
  28355.     This error was discovered when a customer was loading his Btrieve NLM manually instead of using BSTART.NCF file.  He actually had gone into BSETUP.NLM and set his parameters but, he failed to realize that the load parameters are actually passed in at load time.  He assumed that by merely typing "Load Btrieve" at the console it would pick up his parameters from the BSETUP.NLM. After loading the Btrieve NLM manually, he could not access any of his Btrieve files which had their Page Size larger than 1024 bytes. He would continue to get an accurate Status=24 "Page Size Error".
  28356.  
  28357.     If you change/save parameters in BSETUP, they will only be used with BTRIEVE.NLM if you use BSTART.NCF to load it.
  28358.  
  28359.  
  28360.  
  28361.  
  28362. FYI:    SQL Stored Procedures
  28363.                                      FYI
  28364.  
  28365. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28366.  
  28367.           TITLE:    SQL Stored Procedures
  28368.    DOCUMENT ID#:    FYI.A.1807
  28369.            DATE:    25FEB91
  28370.         PRODUCT:    NetWare SQL
  28371. PRODUCT VERSION:    NA
  28372.      SUPERSEDES:    NA
  28373.  
  28374.         SYMPTOM:    NA
  28375.  
  28376. ISSUE/PROBLEM
  28377.  
  28378.     Stored Procedures in NetWare SQL(XQL) v2.11 are to be used with the following XQLM functions:
  28379.  
  28380.                   XQLCompile(stored procedure)
  28381.                   XQLExec(cursor)
  28382.  
  28383.     Any substitution which the procedure requires is done during the XQLCompile statement.  The function XQLSubst() is NOT intended to be used with a stored procedure and it is NOT supposed to work with a stored procedure. However, in some circumstances the XQLSubst() function will work on a stored procedure. The following is an example:
  28384.  
  28385.     1.    You have a stored procedure named  do_an_insert.  The procedure does an insert into a table with substitution variables.
  28386.     2.    You do an XQLCompile(do_an_insert).  The status returned is an 808. The status indicates variables have not been defined.
  28387.     3.    You do an XQLSubst( variable lists ) and the substition takes place.
  28388.     4.    You do an XQLExec(cursor) and the insert takes place.
  28389.  
  28390.     Unfortunately this should NOT work!
  28391.  
  28392.     In the January 1991 issue of BULLETS there is an article on Stored Procedures. It is an excellent reference and is a good way for customers to receive additional information about stored procedures.
  28393.  
  28394.  
  28395.  
  28396.  
  28397. FYI:    Named Pipes for DOS (dosnp) v1.2 and v1.3
  28398.                                      FYI
  28399.  
  28400. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28401.  
  28402.           TITLE:    Named Pipes for DOS (dosnp) v1.2 and v1.3
  28403.     DOCUMENT ID:    FYI.A.3202
  28404.            DATE:    21FEB91
  28405.         PRODUCT:    NA
  28406. PRODUCT VERSION:    NA
  28407.      SUPERSEDES:    NA
  28408.  
  28409.         SYMPTOM:    NA
  28410.  
  28411. ISSUE/PROBLEM
  28412.  
  28413.     Your DOS workstation may require up to a minute after you run the Named Pipes extender for DOS before it is ready to run a Named Pipes application.  This can be especially significant in batch files, where Named Pipes applications may fail because they are executed immediately (with no pause) after running the extender.
  28414.  
  28415.  
  28416.  
  28417.  
  28418. FYI:    S Parameter and Btrieve OS/2 Requester (VAP/NLM v5.10a)
  28419.                                      FYI
  28420.  
  28421. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28422.  
  28423.           TITLE:    S Parameter and Btrieve OS/2 Requester (VAP/NLM v5.10a)
  28424.    DOCUMENT ID#:    FYI.A.1713
  28425.            DATE:    21FEB91
  28426.         PRODUCT:    NetWare Btrieve
  28427. PRODUCT VERSION:    NA
  28428.      SUPERSEDES:    NA
  28429.  
  28430.         SYMPTOM:    NA
  28431.  
  28432. ISSUE/PROBLEM
  28433.  
  28434.     If you SET BRQPARMS=/s:1 when using the Btrieve for OS/2 requester (BTRCALLS.DLL) shipped with the 5.10a VAP or the 5.10a NLM (NetWare 3.1), you will get a status 75 (server routing list too small) when you try to open a file or even get the version number.  If you do not set /s (so that it defaults to one), or if you set /s to two or higher, everything works fine.
  28435.  
  28436.     A side effect of this problem causes XQL programs running under OS/2 to receive a status 2008 (Btrieve version must be 5.00 or greater).
  28437.  
  28438.  
  28439.  
  28440.  
  28441. FYI:    Specifying SERVER/VOLUME for data files in Xtrieve PLUS v4.01a
  28442.                                      FYI
  28443.  
  28444. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28445.  
  28446.           TITLE:    Specifying SERVER/VOLUME for data files in Xtrieve PLUS v4.01a
  28447.    DOCUMENT ID#:    FYI.A.1104
  28448.            DATE:    20FEB91
  28449.         PRODUCT:    Xtrieve PLUS
  28450. PRODUCT VERSION:    4.01A
  28451.      SUPERSEDES:    NA
  28452.  
  28453.         SYMPTOM:    NA
  28454.  
  28455. ISSUE/PROBLEM
  28456.  
  28457.     Using Xtrieve PLUS v4.01a, you can specify the server and volume name associated with a file if desired, as long as you are using NetWare Btrieve along with Xtrieve.  If you are using client Btrieve (DOS or OS/2), this is not possible.
  28458.  
  28459.     This makes it possible to access data files stored on different servers, without having to specify a drive letter.
  28460.  
  28461.     To do this, use two backslashes before the server name, like this:
  28462.  
  28463.        \\server_name\volume:directory\subdir\subdir\filename
  28464.  
  28465.     There is one catch though.  Since the DICTIONARY/SHOW option actually does a Btrieve open, rather than making an XQL function call to open the file, you will get a status 11 back from Btrieve.  The problem with DICTIONARY/SHOW is being addressed by development at this time.
  28466.  
  28467.     If you want to see the file definition, you CAN print it from the DICTIONARY/PRINT menu.  You can also access the file through the VIEW option off the MAIN menu.
  28468.  
  28469.  
  28470.  
  28471.  
  28472. FYI:    Btrieve for Windows v5.15
  28473.                                      FYI
  28474.  
  28475. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28476.  
  28477.           TITLE:    Btrieve for Windows v5.15
  28478.    DOCUMENT ID#:    FYI.A.1806
  28479.            DATE:    14FEB91
  28480.         PRODUCT:    Btrieve
  28481. PRODUCT VERSION:    NA
  28482.      SUPERSEDES:    NA
  28483.  
  28484.         SYMPTOM:    NA
  28485.  
  28486. ISSUE/PROBLEM
  28487.  
  28488.     As we all know the Btrieve for Windows Requester for 3.0 Windows is out and about.  I thought I would pass along some information about the new requester.
  28489.  
  28490.     1.    There is a readme on Compuserve which comes with the requester (so yes you can get the requester off of Compuserve).  This readme is VERY important.  It tells the user how to initialize and use the requester.  The two most important things to keep in mind are that 1) the dos brequest version 5.15 must be loaded and 2) the wbtrcall.dll must be in a search mapping or the current directory. For people supporting Btrieve you may want to read over this file to become familiar with the way it is setup.
  28491.  
  28492.     2.    The initalization routine WBRQSHELLINIT is, at the moment, not supported with this new requester.  The user needs to make the appropriate changes to the win.ini file in order to use the requester.  The readme.doc tells one all about initialization of the requester.
  28493.  
  28494.     3.    If local and remote access is necessary use the win.ini file to accomplish any initialization which is needed.
  28495.  
  28496.  
  28497.  
  28498.  
  28499. FYI:    NETBIOS TIMEOUT PARAMS
  28500.                                      FYI
  28501.  
  28502. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28503.  
  28504.           TITLE:    NETBIOS TIMEOUT PARAMS
  28505.     DOCUMENT ID:    FYI.A.0003
  28506.            DATE:    14FEB91
  28507.         PRODUCT:    NA
  28508. PRODUCT VERSION:    NA
  28509.      SUPERSEDES:    NA
  28510.  
  28511.         SYMPTOM:    NA
  28512.  
  28513. ISSUE/PROBLEM
  28514.  
  28515.     NetBios has 3 parameters associated with it, VERIFY TIMEOUT, LISTEN TIMEOUT, ABORT TIMEOUT.  These three parameters interact with one another in ways which may not be obvious.  Every time a packet is received all three parameters are reset(0).  They then begin ticking.  Because of this the following scenario can happen:
  28516.  
  28517.     1.    If workstation A sets VERIFY to 8 seconds, workstation B sets LISTEN to 6 seconds, then station A will never send a verify packet because station B's LISTEN will 'time out' and send a 'keep alive request' therefore resetting all three parameters on the station A side. Station A's VERIFY will never timeout.
  28518.  
  28519.     The parameters should be set in the following ratios.
  28520.  
  28521.     Verify -> to Listen    1:2
  28522.     Verify -> to Abort     1:10
  28523.  
  28524.     The following is an attempt to show how the parameters interact.
  28525.  
  28526.     -> if packet received reset and begin again
  28527.         Verify -> set to 0
  28528.     -> if timedout send verify, reset, and begin again
  28529.  
  28530.     -> if packet received begin again
  28531.         Listen -> set to 0 -> begins ticking
  28532.     -> if timedout send a request for a keep alive and begin again
  28533.  
  28534.     -> if packet received begin again
  28535.         Abort -> set to 0 -> begins ticking
  28536.  
  28537.     -> if timed out disconnect the session
  28538.  
  28539.     The abort timeout DOES NOT wait for the Listen timeout to 'timeout', therefore if the Listen timeout is set for 10 minutes and the abort timeout is set for 1 minute the abort will happen in one minute not 11 minutes. The Listen timeout's job is to send requests for keep alive packets not initialize the start of the abort process.
  28540.  
  28541.  
  28542.  
  28543.  
  28544. FYI:    ScanBinderyObjectTrusteePaths  DOS API's v1.2
  28545.                                      FYI
  28546.  
  28547. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28548.  
  28549.           TITLE:    ScanBinderyObjectTrusteePaths  DOS API's v1.2
  28550.     DOCUMENT ID:    FYI.A.1217
  28551.            DATE:    12FEB91
  28552.         PRODUCT:    NA
  28553. PRODUCT VERSION:    NA
  28554.      SUPERSEDES:    NA
  28555.  
  28556.         SYMPTOM:    NA
  28557.  
  28558. ISSUE/PROBLEM
  28559.  
  28560.     The 4th parameter for this function, trusteeAccessMask, is defined as a *char in the header file and as a *WORD in the documentation.
  28561.  
  28562.     *WORD is probably more appropriate but, because changing the header would impact already-developed code, the manual may be changed instead. It's been  reported as a bug.
  28563.  
  28564.  
  28565.  
  28566.  
  28567. FYI:    GetNextExtended and /D: (Btrieve v5.10 VAP)
  28568.                                      FYI
  28569.  
  28570. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28571.  
  28572.           TITLE:    GetNextExtended and /D: (Btrieve v5.10 VAP)
  28573.    DOCUMENT ID#:    FYI.A.1302
  28574.            DATE:    07FEB91
  28575.         PRODUCT:    NetWare Btrieve
  28576. PRODUCT VERSION:    5.10
  28577.      SUPERSEDES:    NA
  28578.  
  28579.         SYMPTOM:    NA
  28580.  
  28581. ISSUE/PROBLEM
  28582.  
  28583.     I had a customer complain that he was only being returned 4K of data on his Get Next Extended call even though he had allocated a 6K buffer.  He was using the 5.10 VAP.  He knew that he should be returned 60+ records from the 70+ entries, but was only returned 50+ records.  He did not know if he was being returned a Status code from the call.  Upon investigation, it was discovered that he had loaded BREQUEST with defaults.  This implies a data message length of 4096 bytes!  By increasing his /D parm and data message length in BSETUP, he was able to return all his records.
  28584.  
  28585.  
  28586.  
  28587.  
  28588. FYI:    WVIDEO commands - Watcom Debugger.
  28589.                                      FYI
  28590.  
  28591. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28592.  
  28593.           TITLE:    WVIDEO commands - Watcom Debugger.
  28594.     DOCUMENT ID:    FYI.A.0002
  28595.            DATE:    07FEB91
  28596.         PRODUCT:    NA
  28597. PRODUCT VERSION:    NA
  28598.      SUPERSEDES:    NA
  28599.  
  28600.         SYMPTOM:    NA
  28601.  
  28602. ISSUE/PROBLEM
  28603.  
  28604.     I've notice many of us becoming more interested in using the WATCOM compiler in recent weeks.  In order to help you with the debugger I thought I'd put together this note.
  28605.  
  28606.     One of the more powerful aspects of the Watcom Debugger "WVIDEO" is it extensive command language.  This language can be and has been used to create many command files, .DBG files, that can be run from the command line.  I will give a brief description of a few Watcom supplied .DBGs that I find useful and a few simple ones that I've created.
  28607.  
  28608.     Three (of many) Watcom supplied DBGs are :
  28609.  
  28610.     SAVE        Creates a SETUP.DBG file which contains the debugger commands required to recreate the current debugger configuration.  This should be very helpful if you like a certain setup other then the standard default one supplied.
  28611.  
  28612.     VR          Usage: VR <routine_name>
  28613.                 Examine the source code for a given routine using the "view" command.  This will also drop you off in the source at the routine.  Much better the paging down to the place you want to set a break point at.
  28614.  
  28615.     SLOW        Usage: SLOW <delay>
  28616.                 Perform slow motion execution of a program.
  28617.  
  28618.     Three I've created are :
  28619.  
  28620.     VDISPLAY    Usage: VDISPLAY <variable>, it can be <*variable>
  28621.                 Displays in a window a variable.  This can be a structure or a standard CHAR or INT. If you are an old CodeView user and like the WATCH capability of it to monitor the changing values of your variables as the program runs, VDISPLAY is for you.
  28622.  
  28623.     RESTART     Usage: RESTART
  28624.                 Simple restarts the current program at main().
  28625.  
  28626.     EXAMBUF     Usage: EXAMBUF <char * to buffer> <offset into buffer>
  28627.                 Displays the buffer from offset on.  This is very helpful for examining data at an offset that a substantial offset into a buffer.  Other wise you'll have to calculate the (address+offset) and examine 'E' the result of the evaluation.
  28628.  
  28629.     WATCHVAR    Usage: WATCHVAR <variable> <value at which you want to stop>
  28630.                 This is helpful if you want to stop after X iterations.
  28631.  
  28632.     I've included the .DBGs I've created for you to use. Place them in a directory that is in your search path.  If you explore WVIDEOs command language and create a .DBG that you find helpful.  Please share it around! We could sure use them!
  28633.  
  28634.  
  28635.  
  28636.  
  28637. FYI:    XQL for OS/2 v2.11 (patched to 31 as of 2/5/91)
  28638.                                      FYI
  28639.  
  28640. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28641.  
  28642.           TITLE:    XQL for OS/2 v2.11 (patched to 31 as of 2/5/91)
  28643.    DOCUMENT ID#:    FYI.A.1506
  28644.            DATE:    05FEB91
  28645.         PRODUCT:    XQL
  28646. PRODUCT VERSION:    NA
  28647.      SUPERSEDES:    NA
  28648.  
  28649.         SYMPTOM:    NA
  28650.  
  28651. ISSUE/PROBLEM
  28652.  
  28653.     A bug has been turned in for some inconsistent behavior of XQL for OS/2 when different load parameters are used.  The following information pertains to running the XQLPEX example program that is distributed with XQL for OS/2.
  28654.  
  28655.     If you set:
  28656.      SET BTRPARMS=/P:2048 /C: /T:C:\BTR.TRN
  28657.      SET XQLPARMS=/X:C:\ /T /V:8 /B:29 /W:8192
  28658.      xqlpex
  28659.  
  28660.     ==> everything works fine, the data is retrieved correctly.
  28661.  
  28662.     If you set:
  28663.  
  28664.       SET XQLPARMS=/X:C:\ /T /V:8 /B:30 /W:8192
  28665.       xqlpex
  28666.  
  28667.     ==> the program is terminated due to an error.
  28668.  
  28669.     If you set:
  28670.  
  28671.       SET XQLPARMS=/X:C:\ /T /V:8 /B:32 /W:8192
  28672.       xqlpex
  28673.  
  28674.     ==> the data returned is garbage.
  28675.  
  28676.  
  28677.  
  28678.  
  28679. FYI:    Status 85s in Btrieve 5.10a
  28680.                                      FYI
  28681.  
  28682. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28683.  
  28684.           TITLE:    Status 85s in Btrieve 5.10a
  28685.    DOCUMENT ID#:    FYI.A.1902
  28686.            DATE:    31JAN91
  28687.         PRODUCT:    Btrieve
  28688. PRODUCT VERSION:    NA
  28689.      SUPERSEDES:    NA
  28690.  
  28691.         SYMPTOM:    NA
  28692.  
  28693. ISSUE/PROBLEM
  28694.  
  28695.     When a file is in use by a transaction at workstation 1, and workstation 2 tries to access the same file, Btrieve for DOS returns a status 85, while the Btrieve VAP and NLM open the file successfully.
  28696.  
  28697.     This happens even if workstation 1 has issued a No-wait lock on the Begin Transaction.  As documented (5.10), if workstation 2 tries to update the file, even the VAP and NLM return a status 85.
  28698.  
  28699.  
  28700.  
  28701.  
  28702. FYI:    Packed Structures in C Compilers & Btrieve v5.10
  28703.                                      FYI
  28704.  
  28705. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28706.  
  28707.           TITLE:    Packed Structures in C Compilers & Btrieve v5.10
  28708.    DOCUMENT ID#:    FYI.A.1901
  28709.            DATE:    31JAN91
  28710.         PRODUCT:    Btrieve
  28711. PRODUCT VERSION:    5.10
  28712.      SUPERSEDES:    NA
  28713.  
  28714.         SYMPTOM:    NA
  28715.  
  28716. ISSUE/PROBLEM
  28717.  
  28718.     Suppose you create a structure in compiler (with word alignment - unpacked structures) that looks like:
  28719.  
  28720.                struct structure
  28721.                  {
  28722.                     char  flag;
  28723.                     int value;
  28724.                  }
  28725.  
  28726.     This structure should occupy 3 bytes, but because of the unpacked structures option on the compiler, it will occupy 4 bytes, with one blank byte between the 'char' and the 'int'.  This is so, because with word alignment, every variable is stored on an even byte (or word) boundary.  You must specify to Btrieve that this structure is 4 bytes long.
  28727.  
  28728.     If you now switch compiler options (specifically, or use a different compiler) so that the compiler uses packed structures (byte alignment), and read a Btrieve file that was written with unpacked structures, Btrieve will return a status 22 (Data Buffer Length), because the structure is 3 bytes long (variables are stored on byte boundaries).
  28729.  
  28730.     The solution to this problem is to specify the correct compiler option - the one that matches Btrieve's specification of the structure length.  We recommend using packed structures to circumvent this problem.
  28731.  
  28732.     This problem was tested with Btrieve v5.10.
  28733.  
  28734.  
  28735.  
  28736.  
  28737. FYI:    Missing Source In NetWare C Interface v1.2- DOS
  28738.                                      FYI
  28739.  
  28740. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28741.  
  28742.           TITLE:    Missing Source In NetWare C Interface v1.2- DOS
  28743.     DOCUMENT ID:    FYI.A.3305
  28744.            DATE:    30JAN91
  28745.         PRODUCT:    NA
  28746. PRODUCT VERSION:    NA
  28747.      SUPERSEDES:    NA
  28748.  
  28749.         SYMPTOM:    NA
  28750.  
  28751. ISSUE/PROBLEM
  28752.  
  28753.     The file LOAD_DS.ASM is listed as part of the SAP services shipped with the NetWare C Interface - DOS version 1.20.  This file was not shipped on the distribution diskettes.  This file can be obtained by contacting Novell DPD Technical Support.
  28754.  
  28755.  
  28756.  
  28757.  
  28758. FYI:    Btrieve's /M Parameter (v5.10a)
  28759.                                      FYI
  28760.  
  28761. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28762.  
  28763.           TITLE:    Btrieve's /M Parameter (v5.10a)
  28764.    DOCUMENT ID#:    FYI.A.1814
  28765.            DATE:    25JAN91
  28766.         PRODUCT:    Btrieve's
  28767. PRODUCT VERSION:    NA
  28768.      SUPERSEDES:    NA
  28769.  
  28770.         SYMPTOM:    NA
  28771.  
  28772. ISSUE/PROBLEM
  28773.  
  28774.     Using Btrieve for DOS 5.10a when one specifies an /M parameter of 24 and tries to access a file with the page size of 1024 a status of 24 is returned.  The parameter must be taken up to at least 29 to allow the access of the file. Evidently Btrieve cannot accommodate the 1024 file page size with the 24K cache buffer.
  28775.  
  28776.  
  28777.  
  28778.  
  28779. FYI:    Opening Files Under Btrieve for DOS & NetWare Btrieve
  28780.                                      FYI
  28781.  
  28782. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28783.  
  28784.           TITLE:    Opening Files Under Btrieve for DOS & NetWare Btrieve
  28785.    DOCUMENT ID#:    FYI.A.1712
  28786.            DATE:    25JAN91
  28787.         PRODUCT:    Btrieve
  28788. PRODUCT VERSION:    NA
  28789.      SUPERSEDES:    NA
  28790.  
  28791.         SYMPTOM:    NA
  28792.  
  28793. ISSUE/PROBLEM
  28794.  
  28795.     This FYI describes why you can't open the same Btrieve file with both Btrieve for DOS and NetWare Btrieve simultaneously.
  28796.  
  28797.     When a file is opened with NetWare Btrieve (any version), the file is opened by either BTRIEVE.NLM or BSERVER.VAP (whichever you're using) exclusively.
  28798.  
  28799.     Subsequent open calls from the same or different workstations cause Btrieve on the server to issue a handle, but Btrieve does not re-open the file.  If a workstation has Btrieve for DOS loaded, they will not be able to open the same file since Btrieve on the server has exclusive access to it.  A status 94 (Permission Error) will be returned to the workstation in this case.
  28800.  
  28801.     Conversely, if Btrieve for DOS (any version) has a file open, and a workstation that has Brequest loaded tries to open the same file, BTRIEVE.NLM or BSERVER.VAP will not be able to open the file since it can't get exclusive access.  The result is a status 85 (File In Use) for the station that has Brequest loaded.
  28802.  
  28803.  
  28804.  
  28805.  
  28806. FYI:    Btrieve Owner Names
  28807.                                      FYI
  28808.  
  28809. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28810.  
  28811.           TITLE:    Btrieve Owner Names
  28812.    DOCUMENT ID#:    FYI.A.1711
  28813.            DATE:    25JAN91
  28814.         PRODUCT:    Btrieve
  28815. PRODUCT VERSION:    NA
  28816.      SUPERSEDES:    NA
  28817.  
  28818.         SYMPTOM:    NA
  28819.  
  28820. ISSUE/PROBLEM
  28821.  
  28822.     When opening a Btrieve file that has an owner name, you're supposed to put the owner name in the Data Buffer (terminated with a Binary 0), and the length of the owner name in the Data Buffer Length parameter.  This length must include the binary 0.
  28823.  
  28824.     However, if a C programmer uses the "strlen" function to set the DataBufferLength parameter, they must remember to add 1, since strlen does not include the binary 0 when computing the length of the string. Symptoms of this oversight include a randomly occurring status 51 when running an application that uses Btrieve files with owner names.
  28825.  
  28826.  
  28827.  
  28828.  
  28829. FYI:    Windows and Drive Mappings
  28830.                                      FYI
  28831.  
  28832. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28833.  
  28834.           TITLE:    Windows and Drive Mappings
  28835.     DOCUMENT ID:    FYI.A.1605
  28836.            DATE:    25JAN91
  28837.         PRODUCT:    NA
  28838. PRODUCT VERSION:    NA
  28839.      SUPERSEDES:    NA
  28840.  
  28841.         SYMPTOM:    NA
  28842.  
  28843. ISSUE/PROBLEM
  28844.  
  28845.     Although this information is available in the NETWORKS.TXT file that ships on Windows 3.0 diskettes, I thought I'd repeat and clarify the information here. Keep in mind it only effects Windows running under 386 Enhanced mode.
  28846.  
  28847.     In order for Windows to handle drive mappings under NetWare, some decisions had to be made regarding how they were handled.  By default, mappings are not shared among windows applications.  This means that if one application changes drive mappings, it does not effect other applications.  Also, by default, when Windows exits, it restores the drive mappings to their original state before Windows was run.
  28848.  
  28849.     Two parameters allow these settings to be changed.  The first, NWShareHandles, toggles whether or not directory handles may be shared, and defaults to false. The second, RestoreDrives, toggles whether or not drive mappings are restored after exiting Windows, and defaults to true.  Both parameters must be placed in the system.ini file under the [NetWare] heading.  If this heading doesn't already exist in the file, just add it at the end.  The syntax is as follows:
  28850.  
  28851.        [NetWare]
  28852.        NWSHAREHANDLES=TRUE
  28853.        RESTOREDRIVES=FALSE
  28854.  
  28855.     The above example would effectively reverse the default settings.  The case for the parameters or [NetWare] DOES NOT MATTER.  The following are identical:
  28856.  
  28857.        NWSHAREHANDLES=TRUE
  28858.        NWShareHandles=true
  28859.        nwsharehandles=tRuE
  28860.  
  28861.     Also, true/false can be replaced with yes/no and 1/0, as follows:
  28862.  
  28863.        NWShareHandles=yes
  28864.        NWShareHandles=1
  28865.  
  28866.     I tested true/false and 1/0, but other boolean equivalents may work as well. These parameters do not effect changes made by a DOS box.
  28867.  
  28868.  
  28869.  
  28870.  
  28871. FYI:    SetHardwareInterrupt Return Codes on CLib v3.1 and v3.11
  28872.                                      FYI
  28873.  
  28874. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28875.  
  28876.           TITLE:    SetHardwareInterrupt Return Codes on CLib v3.1 and v3.11
  28877.     DOCUMENT ID:    FYI.A.3201
  28878.            DATE:    24JAN91
  28879.         PRODUCT:    NA
  28880. PRODUCT VERSION:    NA
  28881.      SUPERSEDES:    NA
  28882.  
  28883.         SYMPTOM:    NA
  28884.  
  28885. ISSUE/PROBLEM
  28886.  
  28887.     The error codes for the NLM function SetHardwareInterrupt are ...
  28888.  
  28889.      return code            reason
  28890.      -----------            --------------------------------------------
  28891.          1                  Invalid Parameters passed to function.
  28892.                             (bad interrupt number, bad routine address,invalid resource Tag...)
  28893.  
  28894.          2                  Invalid sharing mode.
  28895.                             (Try to share an interrupt already flagged non-shareable,Try to make an interrupt non-shareable when it is being shared)
  28896.  
  28897.          3                  Out of memory.
  28898.  
  28899.  
  28900.  
  28901.  
  28902. FYI:    Racal NI5210 NIC.
  28903.                                      FYI
  28904.  
  28905. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28906.  
  28907.           TITLE:    Racal NI5210 NIC.
  28908.    DOCUMENT ID#:    FYI.P.9508
  28909.            DATE:    15JAN91
  28910.         PRODUCT:    NetWare
  28911. PRODUCT VERSION:    v3.11
  28912.      SUPERSEDES:    NA
  28913.  
  28914.         SYMPTOM:    Racal NI5210 drivers and JUMPERS.EXE.
  28915.  
  28916. ISSUE/PROBLEM
  28917.  
  28918.     A customer called in asking if the driver for Racal 5210 was jumpers configurable.  The answer is no.  Jumpers configurable drivers in NetWare v3.11 are those that say so within WSGEN.
  28919.  
  28920. SOLUTION
  28921.  
  28922.     Racal said that they have a utility like JUMPERS.EXE called Rconfig which will give the user more options for irq's and i/o addressing.  To get the Rconfig, call Racal at 508-263-9929.
  28923.  
  28924.  
  28925.  
  28926.  
  28927. FYI:    LogFile API System Call v1.0
  28928.                                      FYI
  28929.  
  28930. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28931.  
  28932.           TITLE:    LogFile API System Call v1.0
  28933.     DOCUMENT ID:    FYI.A.1509
  28934.            DATE:    15JAN91
  28935.         PRODUCT:    NA
  28936. PRODUCT VERSION:    NA
  28937.      SUPERSEDES:    NA
  28938.  
  28939.         SYMPTOM:    NA
  28940.  
  28941. ISSUE/PROBLEM
  28942.  
  28943.     There is a known bug in the LogFile function if the lockDirective is set to 0x03 (Log and lock shareable).  Setting the lockDirective to 0x03 (Log and lock shareable) should allow other users to open the file, however, it locks the file exclusively.
  28944.  
  28945.     This problem should be fixed in the next release of the OS.
  28946.  
  28947.  
  28948.  
  28949.  
  28950. FYI:    DOS Set Machine Name function all versions
  28951.                                      FYI
  28952.  
  28953. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  28954.  
  28955.           TITLE:    DOS Set Machine Name function all versions
  28956.     DOCUMENT ID:    FYI.A.1508
  28957.            DATE:    15JAN91
  28958.         PRODUCT:    NA
  28959. PRODUCT VERSION:    NA
  28960.      SUPERSEDES:    NA
  28961.  
  28962.         SYMPTOM:    NA
  28963.  
  28964. ISSUE/PROBLEM
  28965.  
  28966.     In the NetWare login script the parameter MACHINE NAME = "name", calls an undocumented (MS-DOS Encyclopedia) DOS function call, SET MACHINE NAME.
  28967.  
  28968.     The format for the call is as follows:
  28969.  
  28970.      Set Machine Name
  28971.      Interrupt 21H   Function 5EH  Subfunction 01H
  28972.  
  28973.      AH = 5EH
  28974.      AL = 01H
  28975.  
  28976.      DS:DX = segment:offset of 16-byte buffer (machine name)
  28977.  
  28978.  
  28979.  
  28980.  
  28981. FYI:    Error Writing FAT Tables For Vol SYS: Reoccurring
  28982.                                      FYI
  28983.  
  28984. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  28985.  
  28986.           TITLE:    Error Writing FAT Tables For Vol SYS: Reoccurring
  28987.    DOCUMENT ID#:    FYI.P.9499
  28988.            DATE:    14JAN91
  28989.         PRODUCT:    NetWare
  28990. PRODUCT VERSION:    v3.11
  28991.      SUPERSEDES:    NA
  28992.  
  28993.         SYMPTOM:    Error Writing FAT Tables For Vol SYS:
  28994.  
  28995. ISSUE/PROBLEM
  28996.  
  28997.     Customer was originally getting NMI errors until he set fairness off on ESDI controller.  After that change, he started getting error writing fat tables for vol SYS. VREPAIR would fix it but prob would reoccur every 45 min.
  28998.  
  28999. SOLUTION
  29000.  
  29001.     Replaced prom on ESDI controller.
  29002.  
  29003.  
  29004.  
  29005.  
  29006. FYI:    Compiling Windows v3.0 Apps
  29007.                                      FYI
  29008.  
  29009. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  29010.  
  29011.           TITLE:    Compiling Windows v3.0 Apps
  29012.     DOCUMENT ID:    FYI.A.3702
  29013.            DATE:    14JAN91
  29014.         PRODUCT:    NA
  29015. PRODUCT VERSION:    NA
  29016.      SUPERSEDES:    NA
  29017.  
  29018.         SYMPTOM:    NA
  29019.  
  29020. ISSUE/PROBLEM
  29021.  
  29022.     If, when you double-click on your application, Windows displays a message that the program was compiled for an older version of Windows, you need to perform the following checks:
  29023.  
  29024.     1.    You must be mapped to your directory where YOUR own windows configurations files are located.(SYSTEM.INI, WIN.INI, etc.)
  29025.  
  29026.     2.    You must be mapped to where the system files are on the Network. This will allow you to run Windows.
  29027.  
  29028.     3.    Next, map to where the resource compiler is located. It is usually located under the windev subdirectory from the Windows SDK.
  29029.  
  29030.     4.    Another mapping to where the compiler .EXE is located. Note that at present time we recommend that you use the MSC 5.1 compiler and the 6.0 linker. The 6.0 compiler creates problems with optimization and will not work properly.
  29031.  
  29032.     5.    Along the same line with the compiler, set your INCLUDE and LIB environment variables to use the 6.0 include files from the SDK and set the LIB to the Windows library from the SDK first, followed by the regular libraries of the MSC 6.0 compiler.
  29033.  
  29034.     This, barring all major bugs and logic errors, will allow you to compile a Windows application. Good luck.
  29035.  
  29036.  
  29037.  
  29038.  
  29039. FYI:    OS/2 v1.2 and the NETAPI.DLL
  29040.                                      FYI
  29041.  
  29042. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  29043.  
  29044.           TITLE:    OS/2 v1.2 and the NETAPI.DLL
  29045.     DOCUMENT ID:    FYI.A.3701
  29046.            DATE:    14JAN91
  29047.         PRODUCT:    NA
  29048. PRODUCT VERSION:    NA
  29049.      SUPERSEDES:    NA
  29050.  
  29051.         SYMPTOM:    NA
  29052.  
  29053. ISSUE/PROBLEM
  29054.  
  29055.     Many people have wondered what the deal is about the OS/2 NETAPI.DLL. What is it? Doesn't Novell have its own? Which do I use?
  29056.  
  29057.     Well, hopefully, all issues will be covered here. What it comes down to is that there are certain OS/2 1.2 extended edition configurations that are incompatible with Novell's NetWare requester for OS/2 1.2. One reason is that the OS/2 DLL is designed to load only one copy of an application at a time.
  29058.  
  29059.     As you may have noticed, both OS/2 and Novell have files named NETAPI.DLL. Under NetWare, the file is used for NetBIOS support under a Novell environment. The OS/2 NETAPI.DLL supports NetBIOS as well as LAN Server. So, one may ask, "If they both support basically the same thing, what difference does it make which one I use?"
  29060.  
  29061.     Well, here's the answer. OS/2's version of the NETAPI.DLL will talk only to their protocol stacks(most of the time is PCLAN) while Novell's NETAPI.DLL only communicates with NetWare's protocol(IPX). So, NetBIOS can communicate between several machines running OS/2 version, or between several machines running Novell's NETAPI.
  29062.  
  29063.     In other words, one must be chosen over the other. Either use the NETAPI.DLL that ships with OS/2 1.2 EE or use Novell's NETAPI.DLL that ships with the requester. Within the NetWare environment, certain constraints fit the Extended Edition. However, with the exception of LAN Server Requester, components such as:
  29064.  
  29065.             Communications Manager
  29066.             Database Manager
  29067.             User Profile Management(sometimes called Muglib)
  29068.             Remote Data Services
  29069.             APPC
  29070.             NetBIOS (between two similar protocols)
  29071.             NetWare LANS
  29072.  
  29073.     will be able to function. Please keep in mind, however, that NetWare LAN functionality(except for NetBIOS)is available across a Novell internet.
  29074.  
  29075.     Currently, Novell is working to provide a more comprehensive and compatible solution to Database Manager and Communications Manager. Stay tuned for upcoming announcements.
  29076.  
  29077.  
  29078.  
  29079.  
  29080. FYI:    errno NOT defined in MicroSoft C 5.1
  29081.                                      FYI
  29082.  
  29083. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  29084.  
  29085.           TITLE:    errno NOT defined in MicroSoft C 5.1
  29086.     DOCUMENT ID:    FYI.A.3304
  29087.            DATE:    14JAN91
  29088.         PRODUCT:    NA
  29089. PRODUCT VERSION:    NA
  29090.      SUPERSEDES:    NA
  29091.  
  29092.         SYMPTOM:    NA
  29093.  
  29094. ISSUE/PROBLEM
  29095.  
  29096.     The C Interface - DOS version 1.20, especially Queue Services, expects the DOS errno variable to be defined in the errno.h header file provided by the compiler.  This is true in the Novell C Compiler version 2.0, the Turbo C Compiler version 2.0 and the MicroSoft C Compiler version 6.0. The MicroSoft C Compiler 5.X does not define errno in the errno.h header file.  This causes and unresolved variable error when compiling with MicroSoft C 5.X.  This has been reported as a bug in the C Interface - DOS libraries.
  29097.  
  29098.     A temporary work-around is to define int errno in the offending modules. These will need removed if the libraries are ever recompiled for MicroSoft C version 6.0.
  29099.  
  29100.  
  29101.  
  29102.  
  29103. FYI:    FileServerFileCopy - C int and DOS Calls
  29104.                                      FYI
  29105.  
  29106. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  29107.  
  29108.           TITLE:    FileServerFileCopy - C int and DOS Calls
  29109.     DOCUMENT ID:    FYI.A.3303
  29110.            DATE:    14JAN91
  29111.         PRODUCT:    NA
  29112. PRODUCT VERSION:    NA
  29113.      SUPERSEDES:    NA
  29114.  
  29115.         SYMPTOM:    NA
  29116.  
  29117. ISSUE/PROBLEM
  29118.  
  29119.     The C Interface - DOS version 1.20 and System Calls - DOS version 1.0 FileServerFileCopy function works differently in NetWare 286 than in NetWare 386.  The max file size that can be specified in the bytes to be copied parameter is hex FF FF FF 7F (longs are byte-swapped) under NetWare 286.  This is because NetWare 286 interprets the trailing byte as the sign.
  29120.  
  29121.     If FF FF FF FF is specified under NetWare 286, the function will return successfully, but with zero bytes copied.  If FF FF FF FF is specified under NetWare 386, the function will return successfully with the number of bytes actually copied.
  29122.  
  29123.     By specifying the highest value possible in the bytes to be copied parameter you eliminate getting the file size every time a file is copied.
  29124.  
  29125.  
  29126.  
  29127.  
  29128. FYI:    SCSI Adapter And Drive In PS/2 Model 60
  29129.                                      FYI
  29130.  
  29131. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29132.  
  29133.           TITLE:    SCSI Adapter And Drive In PS/2 Model 60
  29134.    DOCUMENT ID#:    FYI.P.9494
  29135.            DATE:    08JAN91
  29136.         PRODUCT:    NetWare
  29137. PRODUCT VERSION:    All
  29138.      SUPERSEDES:    NA
  29139.  
  29140.         SYMPTOM:    NA
  29141.  
  29142. ISSUE/PROBLEM
  29143.  
  29144.     Does the PS/2 Model 60 support a SCSI drive while running NetWare?
  29145.  
  29146. SOLUTION
  29147.  
  29148.     Although PS/2 Model 60's did not come with SCSI drives, IBM is now supporting the SCSI adapter and drive from the PS/2 Model 65 in the Model 60.  Since our driver was written to support this drive, NetWare runs fine with this configuration.
  29149.  
  29150.  
  29151.  
  29152.  
  29153. FYI:    Register parameter passing with CNC/386 v1.1
  29154.                                      FYI
  29155.  
  29156. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within it's means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit claims to the validity of this information.)
  29157.  
  29158.           TITLE:    Register parameter passing with CNC/386 v1.1
  29159.     DOCUMENT ID:    FYI.A.4001
  29160.            DATE:    08JAN91
  29161.         PRODUCT:    NA
  29162. PRODUCT VERSION:    NA
  29163.      SUPERSEDES:    NA
  29164.  
  29165.         SYMPTOM:    NA
  29166.  
  29167. ISSUE/PROBLEM
  29168.  
  29169.     When using register-based parameter passing, you need to create a stub function called __init_argv in the main module and you must cdecl main. This __init_argv does not get called at all but the compiler puts a reference in with an underscore on the right side!  The real __init_argv gets called by the startup code in PRELUDE.
  29170.  
  29171.     So, be sure to put in a stub __init_argv and to cdecl the main function when you use the /3r command line switch.
  29172.  
  29173.  
  29174.  
  29175.  
  29176. FYI:    Zstrings/Lstrings in Xtrieve v4.01 with XQL/NetWare SQL v2.11
  29177.                                      FYI
  29178.  
  29179. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29180.  
  29181.           TITLE:    Zstrings/Lstrings in Xtrieve v4.01 with XQL/NetWare SQL v2.11
  29182.    DOCUMENT ID#:    FYI.A.1710
  29183.            DATE:    08JAN91
  29184.         PRODUCT:    NetWare SQL
  29185. PRODUCT VERSION:    2.11
  29186.      SUPERSEDES:    NA
  29187.  
  29188.         SYMPTOM:    NA
  29189.  
  29190. ISSUE/PROBLEM
  29191.  
  29192.     When inserting data into Zstring or Lstring fields, Xtrieve v4.01a pads the data with spaces to fill out the field.  When XQL version 2.01 or NetWare SQL version 2.01 or 2.10 (VAP) got this data from Xtrieve, it stripped off the spaces and stored it as a Zstring or Lstring should be stored, with only the significant portion of data.  However, version 2.11 of XQL/NetWare SQL treats trailing blanks as significant and doesn't strip them off before inserting the data into the Btrieve file.
  29193.  
  29194.     This has caused some problems to customers who use Zstrings or Lstrings and insert data through Xtrieve using XQL/NetWare SQL v2.11.  Now, when they set up a restriction on one of these fields, it won't find the records that have had the blanks padded on, even if you put the blanks on the constant in the restriction.  One way to get around this is to avoid using Zstrings or Lstrings if you're going to be inserting data via Xtrieve & XQL v2.11.  A PARTIAL workaround would be to use 'begins with' instead of a 'get equal to' in the restriction.  This is only a partial work- around, since you may get records that are not EQUAL to the string you're searching for.
  29195.  
  29196.     If an ASCII file is built in UNF format, such that Zstrings have the null byte after the significant portion of data and Lstrings have the length byte set to the significant portion of the data, this can be translated into Xtrieve even if you're using XQL/NetWare SQL v2.11 without the blanks being padded (In other words, UNF files translate in correctly).  On the other hand, translating into Xtrieve from an SDF or DIF file WILL pad Zstrings and Lstrings with blanks.  However, if the customer has XQLUTIL, he can do an XQLUTIL -LOAD from these formats into the Btrieve file, in which case the blanks will not be padded.
  29197.  
  29198.  
  29199.  
  29200.  
  29201. FYI:    XQL v2.11 Select...NOT IN problem
  29202.                                      FYI
  29203.  
  29204. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29205.  
  29206.           TITLE:    XQL v2.11 Select...NOT IN problem
  29207.    DOCUMENT ID#:    FYI.A.1709
  29208.            DATE:    04JAN91
  29209.         PRODUCT:    XQL
  29210. PRODUCT VERSION:    2.11
  29211.      SUPERSEDES:    NA
  29212.  
  29213.         SYMPTOM:    NA
  29214.  
  29215. ISSUE/PROBLEM
  29216.  
  29217.     Version 2.11 of XQL/NetWare SQL has a bug causing SELECT statements that contain a 'where NOT IN' clause to return incorrect data.  This has been fixed in the next release but is not patchable.  The workaround is to use the NOT EXISTS clause instead.
  29218.  
  29219. Example:
  29220.  
  29221.       SELECT field1 FROM Table1
  29222.       WHERE field1 NOT IN (select field2 FROM Table2)
  29223.  
  29224.     should instead be written as:
  29225.  
  29226.       SELECT field1 FROM Table1 A
  29227.       WHERE NOT EXISTS (SELECT field2 FROM Table2 WHERE field2 = A.field1)
  29228.  
  29229.        (Note: A is an alias for Table1)
  29230.  
  29231.     There may also be problems caused by the IN operator; use the EXISTS clause instead.
  29232.  
  29233.     One final note, if the 'field NOT IN ...' or 'field IN ...' clause is part of a complex WHERE condition (involving AND's or OR's), you may get a syntax error when compiling the statement after you switch it to use NOT EXISTS or EXISTS; if you switch the order of the expressions so that the NOT EXISTS/EXISTS clause is last, you should avoid this problem.
  29234.  
  29235.  
  29236.  
  29237.  
  29238. FYI:    Xtrieve versions prior to v4.01 & Btrieve v5.0+ NLM
  29239.                                      FYI
  29240.  
  29241. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29242.  
  29243.           TITLE:    Xtrieve versions prior to v4.01 & Btrieve v5.0+ NLM
  29244.    DOCUMENT ID#:    FYI.A.1708
  29245.            DATE:    04JAN91
  29246.         PRODUCT:    NetWare Btrieve
  29247. PRODUCT VERSION:    5.0+
  29248.      SUPERSEDES:    NA
  29249.  
  29250.         SYMPTOM:    NA
  29251.  
  29252. ISSUE/PROBLEM
  29253.  
  29254.     This was tested with version 5.0 and 5.10 of Brequest under the NLM environment, however, the same problems should occur under ANY version of Brequest.
  29255.  
  29256.     A customer who was concerned about workstation memory wanted to load Brequest under his old version of Xtrieve (version 2.x - which didn't need XQLP loaded). However, this will not work; this version of Xtrieve pre-dated Brequest.  The problem occurs when you try to select a file for a view.  At this point, Xtrieve makes a Btrieve STAT call.  Brequest expects a 64 byte key buffer, but older versions of Xtrieve aren't allocating one.  The result:  when Brequest returns the STAT call information, it's overwriting the stack with the 64 bytes of what is supposed to be the key buffer.  Visible result: Xtrieve hangs.
  29257.  
  29258.     Ye Old Xtrieve will work with the 5.10 version of Btrieve for DOS, by the way.
  29259.  
  29260.  
  29261.  
  29262.  
  29263. FYI:    Btrieve v5.10 Requester for OS/2 Status 95
  29264.                                      FYI
  29265.  
  29266. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29267.  
  29268.           TITLE:    Btrieve v5.10 Requester for OS/2 Status 95
  29269.    DOCUMENT ID#:    FYI.A.1707
  29270.            DATE:    31DEC90
  29271.         PRODUCT:    Btrieve
  29272. PRODUCT VERSION:    5.10
  29273.      SUPERSEDES:    NA
  29274.  
  29275.         SYMPTOM:    NA
  29276.  
  29277. ISSUE/PROBLEM
  29278.  
  29279.     In the case that a status 95 is returned at the workstation when using the Btrieve for OS/2 Requester v5.10 with the NetWare Btrieve NLM v5.10, the following messages may also appear at the server:
  29280.  
  29281.       BSPXCOM - 0
  29282.       BSPXCOM - <hex #>
  29283.       BSPXCOM - connection not empty at session termination.  RC=#
  29284.  
  29285.  
  29286.  
  29287.  
  29288. FYI:    Lantastic v3.x & Btrieve v5.10a for DOS
  29289.                                      FYI
  29290.  
  29291. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29292.  
  29293.           TITLE:    Lantastic v3.x & Btrieve v5.10a for DOS
  29294.    DOCUMENT ID#:    FYI.A.1404
  29295.            DATE:    28DEC90
  29296.         PRODUCT:    Btrieve
  29297. PRODUCT VERSION:    5.10A
  29298.      SUPERSEDES:    NA
  29299.  
  29300.         SYMPTOM:    NA
  29301.  
  29302. ISSUE/PROBLEM
  29303.  
  29304.     After many hours of testing with Lantastic version 3.0 and Btrieve for DOS version 5.10a, I was not able to duplicate any problems with the Network. The tests covered locking, multiple opens, transactions, and trying to duplicate a status 2 using a series of updates, inserts, and deletes.  The only time I was able to duplicate the status 2 was after loading SHARE on the workstations.  (SHARE should be loaded at the server only.) Otherwise, I was not able to duplicate any problems that developers had talked about.
  29305.  
  29306.     Artisoft has informed me that the problems reported were occurring under Lantastic version 3.1, which I did not test. Artisoft is telling its customers that they don't know of any problems with Btrieve running on version 3.2 of the Lantastic Network.  This is the latest and greatest version, and is much more stable than version 3.1 of the Lantastic Network.  They advise that Lantastic customers upgrade to version 3.2 if they are currently using version 3.1.
  29307.  
  29308.  
  29309.  
  29310.  
  29311. FYI:    XQLI v2.11 & Invalid Cursor ID Error
  29312.                                      FYI
  29313.  
  29314. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29315.  
  29316.           TITLE:    XQLI v2.11 & Invalid Cursor ID Error
  29317.    DOCUMENT ID#:    FYI.A.1403
  29318.            DATE:    28DEC90
  29319.         PRODUCT:    XQLI
  29320. PRODUCT VERSION:    2.11
  29321.      SUPERSEDES:    NA
  29322.  
  29323.         SYMPTOM:    NA
  29324.  
  29325. ISSUE/PROBLEM
  29326.  
  29327.     When using XQLI from the older version (2.01) of XQL, you were required to load XQLP and XQLM before loading XQLI.  With the new version (2.11) of XQL, only XQL needs to be loaded before XQLI.
  29328.  
  29329.     If you load XQLP v2.11 and XQLM v2.01 (by mistake) before loading XQLI v2.11, then XQLI will return an error message of "Invalid Cursor ID" after attempting to execute a statement.  So, if you run into this message, make sure you are loading XQL v2.11 before XQLI v2.11.
  29330.  
  29331.  
  29332.  
  29333.  
  29334. FYI:    Status 43 when using XQL v2.11 for DOS
  29335.                                      FYI
  29336.  
  29337. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29338.  
  29339.           TITLE:    Status 43 when using XQL v2.11 for DOS
  29340.    DOCUMENT ID#:    FYI.A.1706
  29341.            DATE:    14DEC90
  29342.         PRODUCT:    XQL
  29343. PRODUCT VERSION:    2.11
  29344.      SUPERSEDES:    NA
  29345.  
  29346.         SYMPTOM:    NA
  29347.  
  29348. ISSUE/PROBLEM
  29349.  
  29350.     Suppose two stations simultaneously fetch the same records with a wait-lock bias; the first station will get the records and the second station will wait.  If the first station then deletes those records (which will also release the lock), the second station will get a status 43 instead of re-issuing the fetch.  This does NOT happen with NetWare SQL - everything works fine.  Two possible workarounds: use no-wait locks and loop to repeat the fetch; trap for the status 43 and re-issue the fetch with the wait lock.
  29351.  
  29352.  
  29353.  
  29354.  
  29355. FYI:    Btrieve v5.10a Patch 20
  29356.                                      FYI
  29357.  
  29358. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29359.  
  29360.           TITLE:    Btrieve v5.10a Patch 20
  29361.    DOCUMENT ID#:    FYI.A.1805
  29362.            DATE:    13DEC90
  29363.         PRODUCT:    Btrieve
  29364. PRODUCT VERSION:    5.10A
  29365.      SUPERSEDES:    NA
  29366.  
  29367.         SYMPTOM:    NA
  29368.  
  29369. ISSUE/PROBLEM
  29370.  
  29371.     The Btrieve for DOS 5.10a patch #20 says "Btrieve may hang if another TSR program is using it".  The reason for this is because TSR's often set the DOS busy flag.  Btrieve will not interrupt if the DOS busy flag is set.  The patch will allow Btrieve to 'skip' over the DOS busy flag and run.  Be aware, the patch is commented out in the BPATDOS.51A file.  So, if your customer needs the patch have them uncomment it or apply it manually.
  29372.  
  29373.  
  29374.  
  29375.  
  29376. FYI:Reject Count & Btrieve v5.10a
  29377.                                      FYI
  29378.  
  29379. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29380.  
  29381.           TITLE:    Reject Count & Btrieve v5.10a
  29382.    DOCUMENT ID#:    FYI.A.1809
  29383.            DATE:    30NOV90
  29384.         PRODUCT:    Btrieve
  29385. PRODUCT VERSION:    5.10A
  29386.      SUPERSEDES:    NA
  29387.  
  29388.         SYMPTOM:    NA
  29389.  
  29390. ISSUE/PROBLEM
  29391.  
  29392.     A word about reject count and the Btrieve extended functions.  The system determined value as discussed in a previous FYI is 127 for Btrieve for DOS, Btrieve for OS/2, and Btrieve for Windows; 1023 for the Btrieve VAP, and 4095 for the Btrieve NLM.  The value of the reject count can never be greater than the system determined value.  If in Btrieve for DOS the reject count is set to 1000 it will be reset to 127.  The reason for this is to ensure that the CPU will not be tied up by one call.
  29393.  
  29394.  
  29395.  
  29396.  
  29397. FYI:    Status 80 - Record and Page Level Conflicts, Btrieve v5.x
  29398.                                      FYI
  29399.  
  29400. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29401.  
  29402.           TITLE:    Status 80 - Record and Page Level Conflicts, Btrieve v5.x
  29403.    DOCUMENT ID#:    FYI.A.1803
  29404.            DATE:    30NOV90
  29405.         PRODUCT:    Btrieve
  29406. PRODUCT VERSION:    5.X
  29407.      SUPERSEDES:    NA
  29408.  
  29409.         SYMPTOM:    NA
  29410.  
  29411. ISSUE/PROBLEM
  29412.  
  29413.     A Btrieve status 80 can reflect a page level conflict error or a record level conflict error depending upon the Btrieve being used.
  29414.  
  29415.     A status 80 indicates that a conflict has occured.  A conflict arises when station A reads a record, station B reads the same record and updates it, station A tries to update the record and receives a status 80.
  29416.  
  29417.     Each data page contains a usage count for the page.  When the page is changed, then the usage count is incremented.  When a record is read the usage count is noted.  When an update or delete is issued, the usage count is again noted by Btrieve.  If the values noted are different, then the status 80 may occur.
  29418.  
  29419.     Btrieve for DOS will return the 80 if a record on the page has been changed.  In our example above, the same record would not have to be read.  Instead station B could read a record from the same data page and do the update. Station A would receive the status 80 because the usage count values would not agree.
  29420.  
  29421.     NetWare Btrieve will check further to see if the record was changed and will only return the status 80 when the record was altered.
  29422.  
  29423.     So, Btrieve for DOS reflects a page level status 80 and NetWare Btrieve reflects a record level status 80.
  29424.  
  29425.  
  29426.  
  29427.  
  29428. FYI:    Btrieve v5.10 for Windows & Actor
  29429.                                      FYI
  29430.  
  29431. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29432.  
  29433.           TITLE:    Btrieve v5.10 for Windows & Actor
  29434.    DOCUMENT ID#:    FYI.A.1209
  29435.            DATE:    27NOV90
  29436.         PRODUCT:    Btrieve
  29437. PRODUCT VERSION:    5.10
  29438.      SUPERSEDES:    NA
  29439.  
  29440.         SYMPTOM:    NA
  29441.  
  29442. ISSUE/PROBLEM
  29443.  
  29444.     Whitewater Group has a Windows  object-oriented applications development tool called ACTOR. I've talked with a number of people who want to use Btrieve from inside of Actor (which has its own programming language). Well, there is an interface now on the Whitewater bulletin board (I don't have a number, but users will). The name of the file is WBTRV.ZIP.
  29445.  
  29446.  
  29447.  
  29448.  
  29449. FYI:    NetWare SFT 2.15a and LARGE mirrored drives
  29450.                                      FYI
  29451.  
  29452. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29453.  
  29454.           TITLE:    NetWare SFT 2.15a and LARGE mirrored drives
  29455.    DOCUMENT ID#:    FYI.A.1705
  29456.            DATE:    21NOV90
  29457.         PRODUCT:    NA
  29458. PRODUCT VERSION:    NA
  29459.      SUPERSEDES:    NA
  29460.         SYMPTOM:    NA
  29461.  
  29462. ISSUE/PROBLEM
  29463.  
  29464.     Anyone running NetWare SFT 2.15a on a server that has large mirrored drives (over 255 Meg) will likely have problems that can only be fixed by upgrading to 2.15c (no patch).  The problems will vary depending on what applications are being run; basically, NetWare doesn't handle the files properly on these large mirrored drives.
  29465.  
  29466.     For example, a Btrieve customer in this situation was having problems like: 2nd station to open a Btrieve file would hang on the open; 2nd station to open a Btrieve file would get a status 94; a BUTIL -RECOVER would work, but a BUTIL -CLONE returned a status 2.
  29467.  
  29468.  
  29469.  
  29470.  
  29471. FYI:    Embedded SQL v2.11
  29472.                                      FYI
  29473.  
  29474. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29475.  
  29476.           TITLE:    Embedded SQL v2.11
  29477.    DOCUMENT ID#:    FYI.A.1505
  29478.            DATE:    19NOV90
  29479.         PRODUCT:    NetWare SQL
  29480. PRODUCT VERSION:    2.11
  29481.      SUPERSEDES:    NA
  29482.  
  29483.         SYMPTOM:    NA
  29484.  
  29485. ISSUE/PROBLEM
  29486.  
  29487.     The Embedded SQL libraries that are included with XQL 2.11 will not work if you use the alternate library for floating point, MLIBCA.  When the application program is linked with this library, Unresolved External errors will be generated.  The library you should use is MLIBCE, for the standard floating point library, until you get a copy of the alternate set of Embedded SQL libraries.
  29488.  
  29489.  
  29490.  
  29491.  
  29492. FYI:    RM COBOL and Btrieve v5.x
  29493.                                      FYI
  29494.  
  29495. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29496.  
  29497.           TITLE:    RM COBOL and Btrieve v5.x
  29498.    DOCUMENT ID#:    FYI.A.1402
  29499.            DATE:    16NOV90
  29500.         PRODUCT:    Btrieve
  29501. PRODUCT VERSION:    5.X
  29502.      SUPERSEDES:    NA
  29503.  
  29504.         SYMPTOM:    NA
  29505.  
  29506. ISSUE/PROBLEM
  29507.  
  29508.     Developers using RMCobol experiencing status 22's should check the PIC clause on the DATA BUFFER LENGTH.  In order to have RM COBOL return a signed binary value here, the clause must be:  Pic 9999 COMP1.
  29509.  
  29510.     Otherwise, it will be returned in Hexidecimal form.
  29511.  
  29512.     Keep in mind that the record stats, such as the RECORD LENGTH, PAGE SIZE, and NUMBER OF KEYS should be declared as:  Pic 99 COMP.
  29513.  
  29514.     The Btrieve STATUS CODE should be declared as:  Pic 99 COMP1.
  29515.  
  29516.     Please keep in mind that these declarations are specific to RM COBOL.
  29517.  
  29518.  
  29519.  
  29520.  
  29521. FYI:    Btrieve v5.1x Requester for Windows
  29522.                                      FYI
  29523.  
  29524. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29525.  
  29526.           TITLE:    Btrieve v5.1x Requester for Windows
  29527.    DOCUMENT ID#:    FYI.A.2401
  29528.            DATE:    13NOV90
  29529.         PRODUCT:    Btrieve
  29530. PRODUCT VERSION:    5.1X
  29531.      SUPERSEDES:    NA
  29532.  
  29533.         SYMPTOM:    NA
  29534.  
  29535. ISSUE/PROBLEM
  29536.  
  29537.     The Btrieve Requester for Windows (WBTRCALL.DLL) supports the Standard and 386Enhanced environments.  It does not support the Real environment.
  29538.  
  29539.     The Real environment cannot be accessed with the Btrieve Requester for Windows.  To access the real environment in Windows, you must load Btrieve for DOS or the Btrieve Requester for DOS in each window which will be running Btrieve/DOS applications.  Then a DOS application can be run from the DOS Window.
  29540.  
  29541.  
  29542.  
  29543.  
  29544. FYI:    XQL v2.11 Documentation Error (Field Descriptor Block)
  29545.                                      FYI
  29546.  
  29547. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29548.  
  29549.           TITLE:    XQL v2.11 Documentation Error (Field Descriptor Block)
  29550.    DOCUMENT ID#:    FYI.A.1504
  29551.            DATE:    07NOV90
  29552.         PRODUCT:    XQL
  29553. PRODUCT VERSION:    2.11
  29554.      SUPERSEDES:    NA
  29555.  
  29556.         SYMPTOM:    NA
  29557.  
  29558. ISSUE/PROBLEM
  29559.  
  29560.     In the current release of XQL v2.11, on page 7-36 and 7-79, a Field Descriptor Block is described for use when creating a table.  The two 1 byte fields, Flags and Field data type, are NOT in the correct order.  The following is how the table should look.
  29561.  
  29562.               Size      Type             Description
  29563.                2       integer          Reserved word
  29564.                1       byte             Field data type
  29565.                1       byte             Flags
  29566.                2       integer          Internal size
  29567.                2       integer          Decimal count
  29568.               20       string           Field name
  29569.  
  29570.                       Field Descriptor Block
  29571.  
  29572.     A common side effect to this problem is that all the data types for the fields will be defined as string, because we are looking at the wrong byte for the Field data type.
  29573.  
  29574.  
  29575.  
  29576.  
  29577. FYI:    Btrieve v5.0 Performance under OS/2
  29578.                                      FYI
  29579.  
  29580. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29581.  
  29582.           TITLE:    Btrieve v5.0 Performance under OS/2
  29583.    DOCUMENT ID#:    FYI.A.1203
  29584.            DATE:    30OCT90
  29585.         PRODUCT:    Btrieve
  29586. PRODUCT VERSION:    5.0
  29587.      SUPERSEDES:    NA
  29588.  
  29589.         SYMPTOM:    NA
  29590.  
  29591. ISSUE/PROBLEM
  29592.  
  29593.     FYI - OS/2 Btrieve performance with the Btrieve for OS/2 requester is VERY poor compared with that of the DOS Btrieve requester. Apparently, it's a problem with how efficiently SPX interacts with OS/2.
  29594.  
  29595.     To give you an idea of the differences, a developer did a comparison using both DOS and OS/2 requesters. He did a recover and then a load of a 10000 record file.
  29596.  
  29597.     Recover 10000 records                  Load  10000  records
  29598.  
  29599.     DOS   1:39                              6:09
  29600.     OS/2  43:00                            43:49
  29601.  
  29602.     Obviously, the Btrieve processing is a minimal part of the time under OS/2. The customer sees a 1/4 second pause at the shell level for each record under OS/2. No pause under DOS.
  29603.  
  29604.     This has been fixed with the release of the v5.1 OS/2 Btrieve Requester in October, 1990.
  29605.  
  29606.  
  29607.  
  29608.  
  29609. FYI:    Btrieve v5.10 Status 18's
  29610.                                      FYI
  29611.  
  29612. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29613.  
  29614.           TITLE:    Btrieve v5.10 Status 18's
  29615.    DOCUMENT ID#:    FYI.A.2202
  29616.            DATE:    25OCT90
  29617.         PRODUCT:    Btrieve
  29618. PRODUCT VERSION:    5.10
  29619.      SUPERSEDES:    NA
  29620.  
  29621.         SYMPTOM:    NA
  29622.  
  29623. ISSUE/PROBLEM
  29624.  
  29625.     NetWare 2.15 (and earlier)
  29626.     When the operating system is configured, one of the options is to have the ability to limit disk space.  If this feature is enabled, please be aware of the following:
  29627.  
  29628.     If any user tries to expand the size of a file that does not have an owner name, the operating system will return a disk full error.  This is true, even if NetWare is not limiting disk space. (ie. the ability is turned on, but, it is not currently limiting any users)
  29629.  
  29630.     NetWare 3.1
  29631.  
  29632.     The 'Limit Disk Space' ability is implemented differently in this environment. It is part of the operating system, and can be set for each user.
  29633.  
  29634.     If a user who has limited disk space tries to expand a file that does not have an owner name, the operating system will return a disk full error.
  29635.  
  29636.     When disk space is being limited in either environment, in all Btrieve environments (DOS, VAP, NLM), if the Btrieve file does not have a NetWare owner name and an application tries to insert or update records, at the point that Btrieve needs to add a page to the file, a STATUS 18 will be returned REGARDLESS of how much disk space is available.
  29637.  
  29638.     The 'NDIR' utility will display NetWare owner names of files.  If an owner name is not present, NDIR will show either 'N/A' or 'NoOwner' in the owner name column.
  29639.  
  29640.     HOW TO CHECK IF DISK SPACE IS LIMITED:
  29641.       With NetWare 2.15 (and earlier)
  29642.       SYSCON
  29643.         Supervisor Options
  29644.            Default Account Balance/Restrictions
  29645.                ...if the following appears as the last items on the screen, then the ability to limit disk space has been enabled...
  29646.              Limit Server Disk Space: ???  (can be either Yes or No)
  29647.              Maximum Server Disk Space(KB):
  29648.  
  29649.        With NetWare 3.1
  29650.       SYSCON
  29651.         User Information (select a user)
  29652.             Volume Restrictions (select a volume)
  29653.                    Limit Volume Space?    ...if yes, then this user cannot expand any files that do not have a NetWare owner name.
  29654.  
  29655.     How can a file lose its owner name?
  29656.     a.    The user who owned it has been deleted!
  29657.     b.    If the file was created with Btrieve, the VAP assigns a NetWare owner name of BTRIEVE_SERV; the NLM assigns a NetWare owner name that is the same as the server name.  In the VAP environment, 'BSETUP - Install' or 'BSETUP - Remove' will cause the NetWare owner name to be lost, since both operations remove the Btrieve entry from the bindery, in effect, deleting the user who owned the file. (Install then re-inserts it, but, the original owner has been lost).
  29658.  
  29659.     Workaround:  Two choices:
  29660.     1.    Disable limited disk space.
  29661.         a.    NetWare 2.15 (and earlier), need to run NETGEN
  29662.         b.    NetWare 3.1, under the user's Volume Restrictions, set the 'Limit Volume Space' to 'No'
  29663.  
  29664.     2.    Give the offending file a NetWare owner name.
  29665.         a.    Rename the NoOwner file, and copy it; the newly copied file will have the owner name of the user who did the copy; recommend the supervisor does this, so that it gets an owner name that is not likely to be lost.
  29666.         b.    Use the 'FILER' utility.  Supervisor has the ability to change owner names.
  29667.  
  29668.     This has been replicated at Novell Developments Products Division (Austin)
  29669.  
  29670.  
  29671.  
  29672.  
  29673. FYI:    Extended Operations (Btrieve v5.1x)
  29674.                                      FYI
  29675.  
  29676. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29677.  
  29678.           TITLE:    Extended Operations (Btrieve v5.1x)
  29679.    DOCUMENT ID#:    FYI.A.1704
  29680.            DATE:    25OCT90
  29681.         PRODUCT:    Btrieve
  29682. PRODUCT VERSION:    5.1X)
  29683.      SUPERSEDES:    NA
  29684.  
  29685.         SYMPTOM:    NA
  29686.  
  29687. ISSUE/PROBLEM
  29688.  
  29689.     Retrieving Variable Length Records with a Btrieve Extended Operation
  29690.  
  29691.     It is possible to retrieve the variable length portion of a record with an extended operation.  Normally, you have to set up the return data buffer as a 2 byte integer for the number of records returned, followed by a structure for each record that gets returned; this structure must contain a 2 byte integer (length of record returned), a 4 byte "currency" (record position - same as what you get with a GetPosition), and the record image.
  29692.  
  29693.     The record image needs to be set up according to the fields you requested in the buffer you passed into the call.  The tricky part with returning the variable part of the record is that Btrieve doesn't pad out the record image part of the returned data buffer.  So, if you allow room for the maximum amount of your variable portion, but your data doesn't fill it, the next record returned in the buffer will start where the previous one left off.
  29694.  
  29695.     Example:    Suppose your fixed record length is 100 bytes, and your variable length can be up to 300 bytes, and you want to return just the variable length portion.  Specify in the field designation of your input buffer a field length of 300 and a field offset of 100.  If you want to return 5 records, the repeating portion of your Return Buffer would have to be set up as:
  29696.  
  29697.        (2 bytes + 4 bytes + 300 bytes) * 5  =  1530 bytes
  29698.  
  29699. For each of the 5 records returned, you need 2 bytes for the length, 4 bytes for the position, and 300 bytes for the variable data.  However, suppose that the first record returned contains only 50 bytes of data; that means that the 2 byte length for the second record returned will be stored in bytes 57 and 58 of these 1530 bytes, immediately after the end of the first record.  What this boils down to, is that you can't set up a specific structure for the data to be returned; your return buffer is going to have to be set up something like:
  29700.  
  29701.         ReturnBuffer = RECORD
  29702.          NumRecords   : integer;
  29703.          RecordBuffer : ARRAY [1..1530] OF char;
  29704.        END;
  29705.  
  29706. and your program will have to parse the length, position, and data out of this character stream returned by Btrieve.
  29707.  
  29708.  
  29709.  
  29710.  
  29711. FYI:    Btrieve v5.10 - Extended Gets & Variable Length records, etc.
  29712.                                      FYI
  29713.  
  29714. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29715.  
  29716.           TITLE:    Btrieve v5.10 - Extended Gets & Variable Length records, etc.
  29717.    DOCUMENT ID#:    FYI.A.1208
  29718.            DATE:    25OCT90
  29719.         PRODUCT:    Btrieve
  29720. PRODUCT VERSION:    5.10
  29721.      SUPERSEDES:    NA
  29722.  
  29723.         SYMPTOM:    NA
  29724.  
  29725. ISSUE/PROBLEM
  29726.  
  29727.     Programming with variable records or variable # of fields.
  29728.     The description and examples of the buffer being returned from a get extended operation are clear for cases involving fixed length records. They do not, however, address the differences or difficulties in handling variable length records.
  29729.  
  29730.     ----------------------------------------------------------------------------
  29731. To help clarify, here is the layout of the return buffer on get extended operations.
  29732.  
  29733.     2     # records returned
  29734.     {repeating portion, 1 for each record returned}
  29735.     2    length of record image
  29736.     4    currency position of record
  29737.     n    record image
  29738.  
  29739.     ----------------------------------------------------------------------------
  29740.     The documented examples return record images whose length is known in advance, thereby allowing the programmer to pre-allocate an array of buffers  (1 for each record) which correctly map over the returned data. These buffers may include 1 or many fields. In the documented examples, the length of all fields is known in advance.
  29741.  
  29742.     If you are dealing with variable length records (specifically, the last field of a variable length record), the task of interpreting the record images is different and somewhat more difficult (particularly for some languages).
  29743.  
  29744.     While the buffer you pass to the get extended op should be large enough for the worst case (i.e. all records are max length), the buffer returned will typically be much smaller because the records are returned contiguously (packed). Passing back this smaller buffer is good news where network performance is concerned. The bad news is that now the programmer must go through this buffer and parse out each field.
  29745.  
  29746. --------------------------------------------------------------------------
  29747.  
  29748.       2     # records returned
  29749.      {repeating portion}
  29750.     * 2    length of record image
  29751.      4    currency position of record
  29752.     * n    record image
  29753.  
  29754.     * Again, these values are not known before the operation for variable records.  Therefore, you cannot preallocate record structures to overlay the returned  buffer.
  29755.     ----------------------------------------------------------------------------
  29756.  
  29757.     In languages like C, pulling fields of various data types (including date, time, float, bfloat, etc..) out of a buffer is relatively easy. For languages like Cobol and Basic, this task will be considerably more difficult. Hopefully, we will develop better documention to demonstrate the best way to handle this problem in the various languages. In the meantime... *************************************************************************
  29758.  
  29759.  
  29760.  
  29761.  
  29762. FYI:    Btrieve (all versions)
  29763.                                      FYI
  29764.  
  29765. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29766.  
  29767.           TITLE:    Btrieve (all versions)
  29768.    DOCUMENT ID#:    FYI.A.5101
  29769.            DATE:    16OCT90
  29770.         PRODUCT:    Btrieve
  29771. PRODUCT VERSION:    NA
  29772.      SUPERSEDES:    NA
  29773.  
  29774.         SYMPTOM:    NA
  29775.  
  29776. ISSUE/PROBLEM
  29777.  
  29778.     DO NOT flag Btrieve files shareable Read Write if using single user Btrieve.  The whole reason we return a status 94 is because single user does not perform the locking necessary to ensure that a file is not corrupted !!
  29779.  
  29780.     In fact, do not flag files being used with Btrieve shareable in any case. It is possible it may completely invalidate open modes such as exclusive and accelerated.
  29781.  
  29782.  
  29783.  
  29784.  
  29785. FYI:    Btrieve v5.10 for Windows & Memory Management
  29786.                                      FYI
  29787.  
  29788. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29789.  
  29790.           TITLE:    Btrieve v5.10 for Windows & Memory Management
  29791.    DOCUMENT ID#:    FYI.A.5002
  29792.            DATE:    16OCT90
  29793.         PRODUCT:    Btrieve
  29794. PRODUCT VERSION:    5.10
  29795.      SUPERSEDES:    NA
  29796.  
  29797.         SYMPTOM:    NA
  29798.  
  29799. ISSUE/PROBLEM
  29800.  
  29801.     Recent questions have been brought up about memory management in the Windows version of Btrieve.
  29802.  
  29803.     One user complained about Btrieve allocating a bunch of memory segments to the application.  This is how Btrieve works.  Normal Windows DLL's have one data segment, and the DLL uses that data for all tasks calling the DLL.
  29804.  
  29805.     This is fine for many DLL's which don't usually do task dependent functions. Btrieve on the other hand is entirely task dependent.  File handles are task specific, and of course everything Btrieve does is with file handles.   In order to handle task specific data more efficiently, Btrieve allocates a Btrieve data segment to each task, and uses that for Btrieve's data segment. This gives the DLL complete TASK INDEPENDENCE.  Without this, there would have to be another DLL which performs the same function as the old BMULTI.EXE and would be very complex, very inefficient, and very buggy (very bad).
  29806.  
  29807.     The task independence has other benefits such as independent initialization and re-initialization.  Concurrent tasks have no effect on each other.  This is more of an OS/2 style DLL in the sense of task independence.  OS/2 DLL's are given unique data segments by the operating system on a per process basis.
  29808.  
  29809.     Why doesn't Windows do this?  This is due to Window's poor memory management in previous versions when memory usage was a large issue.  Memory usage is not such a large issue now with better memory management for Windows 3.0 in protected mode.
  29810.  
  29811.     Now, what does Btrieve allocate on per task basis?
  29812.  
  29813.     -    A Btrieve data segment.  The size is based on the task's /m: parameter
  29814.     -    A Pre-Image segment.  The size is based on the /b: parameter
  29815.     -    Compression and uncompression segments.  The size is based on the /u:  parameter.
  29816.  
  29817.     These segments are allocated to the task and will appear under the tasks name if viewed using HEAPWALK.EXE.
  29818.  
  29819.  
  29820.  
  29821.  
  29822. FYI:    Problem using Pre-v5.1x Btrieve VAP and the Access Server
  29823.                                      FYI
  29824.  
  29825. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29826.  
  29827.           TITLE:    Problem using Pre-v5.1x Btrieve VAP and the Access Server
  29828.    DOCUMENT ID#:    FYI.A.1207
  29829.            DATE:    16OCT90
  29830.         PRODUCT:    NetWare Btrieve
  29831. PRODUCT VERSION:    AP
  29832.      SUPERSEDES:    NA
  29833.  
  29834.         SYMPTOM:    NA
  29835.  
  29836. ISSUE/PROBLEM
  29837.  
  29838.     There was a problem in the 4.11 & 5.00 Btrieve VAP requester which caused problems over the Access Server.  The problem was corrected in the current version (5.1x) of the requester. Unfortunately, the new requester cannot be run with the old version of the VAP.  This means that you will need to get an upgrade to the current version in order to use the requester over the Access Server.
  29839.  
  29840.  
  29841.  
  29842.  
  29843. FYI:    Performance Differences between Btrieve v5.0 and v5.1 Requesters
  29844.                                      FYI
  29845.  
  29846. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29847.  
  29848.           TITLE:    Performance Differences between Btrieve v5.0 and v5.1 Requesters
  29849.    DOCUMENT ID#:    FYI.A.1206
  29850.            DATE:    16OCT90
  29851.         PRODUCT:    Btrieve
  29852. PRODUCT VERSION:    5.0
  29853.      SUPERSEDES:    NA
  29854.  
  29855.         SYMPTOM:    NA
  29856.  
  29857. ISSUE/PROBLEM
  29858.  
  29859.     A developer was doing performance tests across a 9600 baud modem and his opens were taking 6 seconds!
  29860.  
  29861.     The 5.0 requester uses the databuffer length to determine how many packets it needs to send to the server. On most operations, this makes sense.  However, on an open or close operation, only 1 packet is needed.  So, if you had a large garbage value in the data buffer length parameter, you're opens and closes could take much longer than necessary.
  29862.  
  29863.     The workaround to this is to set your data buffer length to, say, 10. My customer did this and his opens went from 6 seconds to 1 second!
  29864.  
  29865.     If you can't change the code, you're only option would be to use the 5.1x requester which, unfortunately, doesn't run with the 5.0 VAP. I.E., you need to upgrade to v5.1.
  29866.  
  29867.  
  29868.  
  29869.  
  29870. FYI:    Alternate Collating Sequence Page and Btrieve v5.0+
  29871.                                      FYI
  29872.  
  29873. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29874.  
  29875.           TITLE:    Alternate Collating Sequence Page and Btrieve v5.0+
  29876.    DOCUMENT ID#:    FYI.A.2002
  29877.            DATE:    15OCT90
  29878.         PRODUCT:    Btrieve
  29879. PRODUCT VERSION:    5.0+
  29880.      SUPERSEDES:    NA
  29881.  
  29882.         SYMPTOM:    NA
  29883.  
  29884. ISSUE/PROBLEM
  29885.  
  29886.     Contrary to the published documentation on Btrieve, the alternate collating sequence is not stored on the header page of a Btrieve file.  The name and page of the sequence IS stored on the header page in bytes 3C-43 and 10A-10D respectively.  If the alternate collating sequence is specified at create time, it is always stored by itself on the second page.  If no sequence is specified, then the second page is used as the first key page for the file.  If an alternate collating sequence is specified after create time (with a supplemental index), the sequence will be stored on the next available page and this page number will be specified in the header page.
  29887.  
  29888.  
  29889.  
  29890.  
  29891. FYI:    Btrieve v5.10 for Windows Status 1013
  29892.                                      FYI
  29893.  
  29894. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29895.  
  29896.           TITLE:    Btrieve v5.10 for Windows Status 1013
  29897.    DOCUMENT ID#:    FYI.A.1802
  29898.            DATE:    10OCT90
  29899.         PRODUCT:    Btrieve
  29900. PRODUCT VERSION:    5.10
  29901.      SUPERSEDES:    NA
  29902.  
  29903.         SYMPTOM:    NA
  29904.  
  29905. ISSUE/PROBLEM
  29906.  
  29907.     There is a parameter associated with Btrieve for Windows v5.10 that everyone using this product should be aware of.  All applications must issue a BTRVSTOP() at the end of their application.  If this is not issued, memory will be held for previous tasks and the task will not be removed from the task table.  If a non-zero status is returned from BTRVSTOP(), then there are files that have been left open and the application must close the files.
  29908.  
  29909.     The options are: 1) the operator closes the files 2) the application issues a reset. Then the BTRVSTOP() must be issued again.  So in order to drive a point home, the BTRVSTOP() must be issued and it must be successful.
  29910.  
  29911.     There is a new parameter in Btrieve for Windows v5.10.  This parameter is called 'tasks'.  Please be aware that it is undocumented.  The default for this parameter is 10.  To change the parameter, use the WIN.INI file.  An example:
  29912.  
  29913.                [BTRIEVE]
  29914.                options= /m:64 /p:4096
  29915.                tasks=20               ( the range is 1 - 255)
  29916.  
  29917.     The occurrence of a status "1013", which is also undocumented, means that there are too many tasks running and the application most likely did not issue a BTRVSTOP() successfully.
  29918.  
  29919.     It has been reported to us that there is a task table and when an application makes its initial Btrieve call, a 'task' is written to the table. The BTRVSTOP() removes that 'task' and consequently if the BTRVSTOP() is unsuccessful then the 'task' table will get full and cause the 1013.
  29920.  
  29921.  
  29922.  
  29923.  
  29924. FYI:    Btrieve v5.10 for Windows - 286 Mode
  29925.                                      FYI
  29926.  
  29927. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29928.  
  29929.           TITLE:    Btrieve v5.10 for Windows - 286 Mode
  29930.    DOCUMENT ID#:    FYI.A.5001
  29931.            DATE:    05OCT90
  29932.         PRODUCT:    Btrieve
  29933. PRODUCT VERSION:    5.10
  29934.      SUPERSEDES:    NA
  29935.  
  29936.         SYMPTOM:    NA
  29937.  
  29938. ISSUE/PROBLEM
  29939.  
  29940.     When running Windows 3.0 in Standard mode (286), Btrieve will cause a protection violation when the /m: parameter is set to the maximum of 64. This is a Windows problem, and is not something that can be fixed by us. To get around this, simply specify a slightly smaller /m: of 63.
  29941.  
  29942.     When running in 386 Enhanced mode, there is no problem with a /m:64.
  29943.  
  29944.     There is also a new patch to fix a problem with the description file editing utility in the ToolBox.  It was stripping off the first word in the comments if there was no leading blank in the comment.
  29945.  
  29946.  
  29947.  
  29948.  
  29949. FYI:    Btrieve v5.10 / QuickBasic 4.5
  29950.                                      FYI
  29951.  
  29952. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29953.  
  29954.           TITLE:    Btrieve v5.10 / QuickBasic 4.5
  29955.    DOCUMENT ID#:    FYI.A.1103
  29956.            DATE:    03OCT90
  29957.         PRODUCT:    Btrieve
  29958. PRODUCT VERSION:    5.10
  29959.      SUPERSEDES:    NA
  29960.  
  29961.         SYMPTOM:    NA
  29962.  
  29963. ISSUE/PROBLEM
  29964.  
  29965.     When running in the Quick Basic 4.5 environment, you must initialize the File Control Block (FCB) before each and every Btrieve call.  This is not documented in the manual or in the INTRFACE.DOC file which is included with Btrieve.
  29966.  
  29967.     Programs run from within the environment MAY hang your system if you are using "history on" or "trace on", or if the program flow is slowed or interrupted with a "stop".  The FCB Address may be overwritten in this case, and therefore, needs to be re-initialized before the next Btrieve call.  The way the FCB should be initialized depends on the Basic interface that you are using, so please refer to the INTRFACE.DOC for an explanation of how it should be done.
  29968.  
  29969.  
  29970.  
  29971.  
  29972. FYI:    Creating Command Files Using FSUSPEND and Xtrieve PLUS v4.01
  29973.                                      FYI
  29974.  
  29975. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29976.  
  29977.           TITLE:    Creating Command Files Using FSUSPEND and Xtrieve PLUS v4.01
  29978.    DOCUMENT ID#:    FYI.A.2001
  29979.            DATE:    26SEP90
  29980.         PRODUCT:    Xtrieve PLUS
  29981. PRODUCT VERSION:    4.01
  29982.      SUPERSEDES:    NA
  29983.  
  29984.         SYMPTOM:    NA
  29985.  
  29986. ISSUE/PROBLEM
  29987.  
  29988.     When creating an Xtrieve command file that will allow a user to choose an option from a menu, the FSUSPEND command key has to be used.  FSUSPEND causes the command that is playing to relinquish control to the user until the user returns to the menu from which FSUSPEND was called.  For example, if the command file is to allow the user to choose a file from a "VIEW, MANAGE, RECALL" , the command file should look like this: " "v" .VIEW. "m" .MANAGE..FSUSPEND. .RECALL. ". Then, the user would choose a file to recall and upon hitting the enter key will return to the menu where FSUSPEND was invoked and the command file will continue execution again.  FSUSPEND must come immediately before calling the menu from which the user will choose.
  29989.  
  29990.  
  29991.  
  29992.  
  29993. FYI:    Btrieve v5.0 and v5.10a Loop Iterations Patch
  29994.                                      FYI
  29995.  
  29996. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  29997.  
  29998.           TITLE:    Btrieve v5.0 and v5.10a Loop Iterations Patch
  29999.    DOCUMENT ID#:    FYI.A.1205
  30000.            DATE:    19SEP90
  30001.         PRODUCT:    Btrieve
  30002. PRODUCT VERSION:    5.0
  30003.      SUPERSEDES:    NA
  30004.  
  30005.         SYMPTOM:    NA
  30006.  
  30007. ISSUE/PROBLEM
  30008.  
  30009.     Last year a patch to allow users to increase the number of loop iterations used by Btrieve was distributed to anyone interested.  It has since been changed to work under 5.10a. Below is a copy of the patch for v5.00 and v5.10a.
  30010.  
  30011.     Description:
  30012.     "If a station is applying a record level lock, any other station that is trying to get some kind of file level lock (OPEN, UPDATE, BEGIN TRANS-no wait, DELETE, INSERT, GET with lock...) could potentially come back with a Status 85."
  30013.  
  30014.     To patch Btrieve 5.00 you can do the following:
  30015.  
  30016.           RENAME BTRIEVE.EXE BTR.PAT
  30017.          DEBUG BTR.PAT
  30018.          -s cs:0 L FFFF 8B 0E D4 08
  30019.           xxxx:59B2
  30020.          -e 59B2       yy and zz make the # of loop iterations. If you want to loop 0100H times, yy is 00, and zz is 01. Currently we loop 20 times.
  30021.  
  30022.               8B. B9 <sp> 0E. yy <sp> D4. zz <sp> 08. 90 <cr>
  30023.          -w <cr>
  30024.          -q <cr>
  30025.          RENAME BTR.PAT BTRIEVE.EXE
  30026.  
  30027.     ****************************************************************************
  30028.     To patch Btrieve 5.10a you can do the following:
  30029.  
  30030.           RENAME BTRIEVE.EXE BTR.PAT
  30031.          DEBUG BTR.PAT
  30032.          -s cs:0 L FFFF 8B 0E F4 18
  30033.           xxxx:61E8
  30034.          -e 61E8       yy and zz make the # of loop iterations. If you want to loop 0100H times, yy is 00, and zz is 01.  Currently we loop 20 times.
  30035.  
  30036.               8B. B9 <sp> 0E. yy <sp> F4. zz <sp> 18. 90 <cr>
  30037.          -w <cr>
  30038.          -q <cr>
  30039.          RENAME BTR.PAT BTRIEVE.EXE
  30040.  
  30041.  
  30042.  
  30043.  
  30044. FYI:    Xtrieve v4.01a OS/2 Incompatability Error Message
  30045.                                      FYI
  30046.  
  30047. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30048.  
  30049.           TITLE:    Xtrieve v4.01a OS/2 Incompatability Error Message
  30050.    DOCUMENT ID#:    FYI.A.1801
  30051.            DATE:    18SEP90
  30052.         PRODUCT:    Xtrieve PLUS
  30053. PRODUCT VERSION:    4.01A
  30054.      SUPERSEDES:    NA
  30055.  
  30056.         SYMPTOM:    NA
  30057.  
  30058. ISSUE/PROBLEM
  30059.  
  30060.     In XTRIEVE for OS/2 version 4.01a when the environment variable BTRPARMS is set incorrectly XTRIEVE will return the message "Record Manager Loaded is Incompatible with XTRIEVE".  Check the syntax of the BTRPARMS and also the balance between the parameters.  In example, if you are setting the page parameter (/p) then be sure to set the (/m) parameter.
  30061.  
  30062.  
  30063.  
  30064.  
  30065. FYI:    Manual Keys (Btrieve v5.10)
  30066.                                      FYI
  30067.  
  30068. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30069.  
  30070.           TITLE:    Manual Keys (Btrieve v5.10)
  30071.    DOCUMENT ID#:    FYI.A.1703
  30072.            DATE:    18SEP90
  30073.         PRODUCT:    Btrieve
  30074. PRODUCT VERSION:    5.10)
  30075.      SUPERSEDES:    NA
  30076.  
  30077.         SYMPTOM:    NA
  30078.  
  30079. ISSUE/PROBLEM
  30080.  
  30081.     If you want to restrict certain records out of an index path by use of a manual key, but you want more than one value to be excluded, you can define the same field as multiple segments of the same key, where all the flags are exactly the same except different manual values are assigned to each segment.  Then, if the field in the data buffer is set to any one of the values assigned, that record will not be included in that key path.
  30082.  
  30083.  
  30084.  
  30085.  
  30086. FYI:    Xtrieve v4.01a or earlier (3.00 - 4.01a)
  30087.                                      FYI
  30088.  
  30089. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30090.  
  30091.           TITLE:    Xtrieve v4.01a or earlier (3.00 - 4.01a)
  30092.    DOCUMENT ID#:    FYI.A.2201
  30093.            DATE:    31AUG90
  30094.         PRODUCT:    Xtrieve PLUS
  30095. PRODUCT VERSION:    4.01A
  30096.      SUPERSEDES:    NA
  30097.  
  30098.         SYMPTOM:    NA
  30099.  
  30100. ISSUE/PROBLEM
  30101.  
  30102.     If you rename XTRIEVE.EXE to any other file name, eg. XTR.EXE you risk the possibility of hanging your system.
  30103.  
  30104.     Since XTRIEVE is an overlayed program, when it needs to load an overlay it will search for XTRIEVE.EXE to load the overlay.  So, if there are any copies of XTRIEVE.EXE in your search path it will use the first XTRIEVE.EXE it finds.  If this happens to be the same version, you will OK, otherwise, bye bye system.
  30105.  
  30106.     Therefore, it is recommended by the author of XTRIEVE, NEVER to rename XTRIEVE.EXE.
  30107.  
  30108.  
  30109.  
  30110.  
  30111. FYI:    Btrieve v5.1 Gotchas
  30112.                                      FYI
  30113.  
  30114. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30115.  
  30116.           TITLE:    Btrieve v5.1 Gotchas
  30117.    DOCUMENT ID#:    FYI.A.1204
  30118.            DATE:    28AUG90
  30119.         PRODUCT:    Btrieve
  30120. PRODUCT VERSION:    5.1
  30121.      SUPERSEDES:    NA
  30122.  
  30123.         SYMPTOM:    NA
  30124.  
  30125. ISSUE/PROBLEM
  30126.  
  30127.     There are now 2 cases that will cause Btrieve 5.1 to return non-zero status codes where 5.0 returned status 0. They are both cases of programmers not following the documentation and Btrieve 5.0 and before not catching the errors.
  30128.  
  30129.     1)    Do a Get with a key and then do an update with a different key number. This will now return a status 7 (Different Key Number). Before it would usually (it can cause problems) return a status 0.
  30130.  
  30131.     2)    Do an Open and a Get Next. This will now return a status 8 (Invalid Positioning). Before it would return a record (undetermined) cases with status 0.
  30132.  
  30133.     The problem with these changes is that suddenly applications don't work and programmers have to rewrite their code to adhere to the documentation.  And the moral is......read the manual!
  30134.  
  30135.  
  30136.  
  30137.  
  30138. FYI:    WBTRCALL.* (distributed with Btrieve v5.10 VAP/NLM)
  30139.                                      FYI
  30140.  
  30141. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30142.  
  30143.           TITLE:    WBTRCALL.* (distributed with Btrieve v5.10 VAP/NLM)
  30144.    DOCUMENT ID#:    FYI.A.1702
  30145.            DATE:    23AUG90
  30146.         PRODUCT:    NetWare Btrieve
  30147. PRODUCT VERSION:    5.10
  30148.      SUPERSEDES:    NA
  30149.  
  30150.         SYMPTOM:    NA
  30151.  
  30152. ISSUE/PROBLEM
  30153.  
  30154.     The WBTRCALL.EXE file currently being distributed with the Btrieve VAP and NLM v5.10 runs under Windows 2.11.  To run Btrieve under Windows 3.0, you will need WBTRCALL.DLL and WBTRCALL.EXE, but the EXE is just a copy of the DLL with a different extension.  The DLL is not being shipped with the VAP or NLM, but will be shipped with Btrieve for Windows v5.1.
  30155.  
  30156.     Part of the problem why you can't run under Windows 3.0 yet is that there is a bug in the IPX/SPX manager making it not compatible with Windows 3.0.
  30157.  
  30158.  
  30159.  
  30160.  
  30161. FYI:    Btrieve v5.10 GetNextExtended
  30162.                                      FYI
  30163.  
  30164. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30165.  
  30166.           TITLE:    Btrieve v5.10 GetNextExtended
  30167.    DOCUMENT ID#:    FYI.A.1701
  30168.            DATE:    23AUG90
  30169.         PRODUCT:    Btrieve
  30170. PRODUCT VERSION:    5.10
  30171.      SUPERSEDES:    NA
  30172.  
  30173.         SYMPTOM:    NA
  30174.  
  30175. ISSUE/PROBLEM
  30176.  
  30177.     When specifying the number of records to be skipped that do not satisfy the filter condition on a GetNextExtended, you can specify the value 0, in which case "a system-determined value will be used" (page 4-59, Btrieve programmer's manual, for v.5.10).  This value is 127 when using Btrieve for DOS, and 1023 when using the VAP or NLM.
  30178.  
  30179.  
  30180.  
  30181.  
  30182. FYI:    Btrieve v5.10 NLM (EXTEND)
  30183.                                      FYI
  30184.  
  30185. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30186.  
  30187.           TITLE:    Btrieve v5.10 NLM (EXTEND)
  30188.    DOCUMENT ID#:    FYI.A.1503
  30189.            DATE:    08AUG90
  30190.         PRODUCT:    NetWare Btrieve
  30191. PRODUCT VERSION:    5.10
  30192.      SUPERSEDES:    NA
  30193.  
  30194.         SYMPTOM:    NA
  30195.  
  30196. ISSUE/PROBLEM
  30197.  
  30198.     The Btrieve EXTEND (16)/BUTIL -EXTEND operation is no longer valid with the NLM.  If you try to perform this operation you will receive a status 1 (Invalid Operation).
  30199.  
  30200.     This is due to the fact that with NW386, a logical volume can have up to 32 segments.  Each volume segment can consume an entire hard disk or only a fraction of a hard disk.  An existing volume can be enlarged by adding additional volume segment(s)/hard drive(s).  The best part is that all of this can be done dynamically.
  30201.  
  30202.     Therefore, the previous Btrieve EXTEND operations is obsolete in the NW386 environment.  If you have a large Btrieve file, simply create a large volume with up to 32 segments or add segments to an existing volume.
  30203.  
  30204.  
  30205.  
  30206.  
  30207. FYI:    Btrieve v5.10a for DOS and Compatible Versions of DOS
  30208.                                      FYI
  30209.  
  30210. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30211.  
  30212.           TITLE:    Btrieve v5.10a for DOS and Compatible Versions of DOS
  30213.    DOCUMENT ID#:    FYI.A.1502
  30214.            DATE:    27JUL90
  30215.         PRODUCT:    Btrieve
  30216. PRODUCT VERSION:    5.10A
  30217.      SUPERSEDES:    NA
  30218.  
  30219.         SYMPTOM:    NA
  30220.  
  30221. ISSUE/PROBLEM
  30222.  
  30223.     In the latest release of Btrieve for Dos 5.10a, the documentation states that if you are using the product in a "client-based" environment, DOS v2.0 or above is required.  However, Btrieve checks for DOS versions and will return a "Incorrect DOS version" if you attempt to load it with any version of DOS earlier than v3.1.
  30224.  
  30225.     This is a DOCUMENTATION error not a product error.  It has been turned in as a bug and will be corrected with the next printing of the manual.
  30226.  
  30227.  
  30228.  
  30229.  
  30230. FYI:    Btrieve v5.x Status 30s and File Recovery
  30231.                                      FYI
  30232.  
  30233. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30234.  
  30235.           TITLE:    Btrieve v5.x Status 30s and File Recovery
  30236.    DOCUMENT ID#:    FYI.A.1002
  30237.            DATE:    25JUL90
  30238.         PRODUCT:    Btrieve
  30239. PRODUCT VERSION:    5.X
  30240.      SUPERSEDES:    NA
  30241.  
  30242.         SYMPTOM:    NA
  30243.  
  30244. ISSUE/PROBLEM
  30245.  
  30246.     If you encounter the Btrieve Status=30 "Not a Btrieve File" error you may want to use the text file I have enclosed as a general guide to resolve the problem. It is a brief description of what steps you can use to try and recover the file.  We don't make any promises!  Keep in mind, that these procedures have been very successful but, there are times when a file becomes so corrupted that nothing works.  Also, this is usually an excellent time to stress the importance of making backups.
  30247.  
  30248.     The first and most preferred option is to use a back-up copy of the damaged file.  If you choose to attempt to rebuild the File Control Record of the Btrieve file, some data may still be lost.  You should attempt to do a BUTIL -RECOVER <Btrieve file name> <output file name>.  Then, after creating a new Btrieve file with the same structure as the one you are recovering, you can do a BUTIL -LOAD <input file name> <new Btrieve file name>, where the Input file name is the same as the output file name from the Recover command.
  30249.     If this does not work, you will need to do the following:
  30250.  
  30251.     a.    Find out how many pages are in your data file.  To do this, just take the byte size of the file and divide by the page size.
  30252.  
  30253.     b.    Create a new Btrieve file with the same characteristics as the file you want to recover.
  30254.  
  30255.     c.    Replace the first page of the damaged file with the first page from the new file you just created.  Remember, a page is however many bytes you specified when you created the file - some multiple of 512 bytes.
  30256.  
  30257.     d.    Replace bytes 26 - 29 of this first page (in the damaged file) with the hex value representing the number of pages in your damaged file that you calculated in step a.
  30258.  
  30259.     Example:    Say your file contains 600,000 pages.  The hex value for this number is 927C0.  When entering these values, keep in mind that high and low order bytes as well as high and low order words get swapped before being stored, so you must store your hex values swapped appropriately.
  30260.  
  30261.                                          26     27     28     29
  30262.                                        ----   ----   ----   ----
  30263.                   Hex bytes 26 - 29:   |  |   |  |   |  |   |  |
  30264.  
  30265.         Decimal 600,000 = Hex 927C0:   |00|   |09|   |27|   |C0|
  30266.  
  30267.     First, flip byte 26 with byte 27:  |09|   |00|
  30268.  
  30269.     Then, flip byte 28 with byte 29:                  |C0|   |27|
  30270.  
  30271.     So, 09 00 C0 27 would be the four hex values you would load into bytes 26 - 29 to represent 600,000 pages.
  30272.  
  30273.     e.    Now you should attempt the Butil Recover and Load process again.
  30274.  
  30275.  
  30276.  
  30277.  
  30278. FYI:    Basic w/ NULL's & Btrieve v4.x+
  30279.                                      FYI
  30280.  
  30281. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30282.  
  30283.           TITLE:    Basic w/ NULL's & Btrieve v4.x+
  30284.    DOCUMENT ID#:    FYI.A.1602
  30285.            DATE:    20JUL90
  30286.         PRODUCT:    Btrieve
  30287. PRODUCT VERSION:    4.X+
  30288.      SUPERSEDES:    NA
  30289.  
  30290.         SYMPTOM:    NA
  30291.  
  30292. ISSUE/PROBLEM
  30293.  
  30294.     Although this is old news to some of you, only one person responded with this information when I asked for it.  So, I'll now repeat it:
  30295.  
  30296.     It seems that Microsoft QuickBasic 4.0 and later and possibly Microsoft Professional Basic 6.0 append path names to files opened with the OPEN statement.  So, when issuing:
  30297.  
  30298.             OPEN "NUL" as #1
  30299.  
  30300.     Microsoft will change NULL to a full path name such as f:\NUL if f: is your current drive.  This is only a problem on NetWare 2.0a or older because these versions of NetWare didn't expect to handle an device with a path name attached.  This is all fixed in NetWare 2.11 and above.
  30301.  
  30302.     Here are the workarounds:
  30303.  
  30304.     1)    Replace NUL with a dummy file name.  The filename must be unique to each station (although setting the file as shareable in advance should also work).
  30305.  
  30306.     2)    Open to a local drive (i.e. A:\NUL).  The problem with this is that there is no guarantee the station has a local drive.
  30307.  
  30308.     3)    Use the TYPE statement instead of the FIELD statement.  The TYPE statement does not require an OPEN to work.
  30309.  
  30310.     4)    Upgrade to NetWare 2.11 or above.
  30311.  
  30312.  
  30313.  
  30314.  
  30315. FYI:    Btrieve v4.11 for Xenix
  30316.                                      FYI
  30317.  
  30318. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30319.  
  30320.           TITLE:    Btrieve v4.11 for Xenix
  30321.    DOCUMENT ID#:    FYI.A.1601
  30322.            DATE:    17JUL90
  30323.         PRODUCT:    Btrieve
  30324. PRODUCT VERSION:    4.11
  30325.      SUPERSEDES:    NA
  30326.  
  30327.         SYMPTOM:    NA
  30328.  
  30329. ISSUE/PROBLEM
  30330.  
  30331.     When writing Btrieve applications under Xenix, the current product supports both 286 and 386 versions of Xenix.  The older versions of Btrieve shipped as separate products for each machine level of Xenix.
  30332.  
  30333.     This becomes important when defining "int"s because they are treated differently on each machine.  "Int"s on a 286 machine with a 286 C compiler are considered two bytes in length (aka "short").  "Int"s on a 386 machine with a 386 C compiler are considered four bytes in length (aka "long").  The current version being shipped (4.11) has an interface which declares the most critical of these as "short" (two bytes).  Older interfaces declared these as "int" in the 286 version.  These interfaces were not meant to be compiled under Xenix 386 because the 386 C compiler would create four byte "int"s.  The interface assumed two byte "int"s.  The solution was to create an interface that declared these as "short"s so they would always be two bytes long.  That is the interface that is currently shipping.
  30334.  
  30335.     A symptom of using the wrong interface is Btrieve "mysteriously" unloading itself.  This is because the interface is sending a process id which is now four bytes instead of two bytes.  When Btrieve receives this invalid process, it unloads itself because this error normally indicates an invalid queue.  The solution is to either have the customer upgrade or have them compile with the -M2e option under Xenix 386.  This will make the compiler generate 286 code, including two byte "int"s.
  30336.  
  30337.     The C standard has never defined a specific size for "short int", "int", or "long int" but does define "int" as normally being the "natural" size for the specific machine being used.  It also defines the relation: "short" <= "int" <= "long", which means they could technically be all the same size!  Luckily, on Intel machines, most "shorts" are two bytes long and most "longs" are four bytes (I know of no exceptions).  Therefore, in order to make code cross-compatible, one should never use "int" when the size of the variable becomes crucial (such as defining a Btrieve record length!).  This is the difference between the old interface and the new interface under Xenix and it's something to watch when generating code for both environments.
  30338.  
  30339.     Please note that these same rules apply under NetWare when using a 386 compiler such as C Network Compiler/386.  Any code the developer writes that needs to be compatible between 286 and 386 compilers should be VERY careful when using "int"s.
  30340.  
  30341.  
  30342.  
  30343.  
  30344. FYI:    Internal Error.  0  Memory Allocation. (Btrieve v5.10 VAP)
  30345.                                      FYI
  30346.  
  30347. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30348.  
  30349.           TITLE:    Internal Error.  0  Memory Allocation. (Btrieve v5.10 VAP)
  30350.    DOCUMENT ID#:    FYI.A.1501
  30351.            DATE:    06JUL90
  30352.         PRODUCT:    NetWare Btrieve
  30353. PRODUCT VERSION:    5.10
  30354.      SUPERSEDES:    NA
  30355.  
  30356.         SYMPTOM:    NA
  30357.  
  30358. ISSUE/PROBLEM
  30359.  
  30360.     With the new Btrieve VAP version 5.10, if you specify a value of 0 for any of the parameters in BSETUP, when you load Btrieve, the following message will appear:
  30361.  
  30362.     BSER 2.00 - 5.10 - Internal Error. 0 Memory Allocation.
  30363.  
  30364.     This message is purely informational.  Btrieve is just notifying you that it has not reserved any space for one of the functions it is capable of performing.  Calling on one of these funtions will result in a status code -- varies depending on the function.
  30365.  
  30366.     e.g.  # of Transactions = 0 (BSETUP)
  30367.          Begin Transaction (19) <===> Status 36 (Transaction Error)
  30368.  
  30369.           # of locks = 0 (BSETUP)
  30370.          2xx (lock of some sort) <==> Status 81 (Lock Error)
  30371.  
  30372.  
  30373.  
  30374.  
  30375. FYI:    DOS 4.0x, NetWare 3.0, and Xtrieve PLUS v4.01a
  30376.                                      FYI
  30377.  
  30378. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30379.  
  30380.           TITLE:    DOS 4.0x, NetWare 3.0, and Xtrieve PLUS v4.01a
  30381.    DOCUMENT ID#:    FYI.A.1401
  30382.            DATE:    10MAY90
  30383.         PRODUCT:    Xtrieve PLUS
  30384. PRODUCT VERSION:    4.01A
  30385.      SUPERSEDES:    NA
  30386.  
  30387.         SYMPTOM:    NA
  30388.  
  30389. ISSUE/PROBLEM
  30390.  
  30391.     Have discovered that the new NetWare 386 v.3.0 and Xtrieve 4.01a have problems working together on printing if using DOS 4.0x and a large drive partioned as one with DOS SHARE loaded.  From the report menu you get "unable to create specified file device name prn" and from the rest of the menu's "error writing output".  If DOS SHARE is not loaded there are no problems.
  30392.  
  30393.  
  30394.  
  30395.  
  30396. FYI:Xtrieve v4.01 Record Lengths
  30397.                                      FYI
  30398.  
  30399. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30400.  
  30401.           TITLE:    Xtrieve v4.01 Record Lengths
  30402.    DOCUMENT ID#:    FYI.A.1723
  30403.            DATE:    30APR90
  30404.         PRODUCT:    Xtrieve PLUS
  30405. PRODUCT VERSION:    4.01
  30406.      SUPERSEDES:    NA
  30407.  
  30408.         SYMPTOM:    NA
  30409.  
  30410. ISSUE/PROBLEM
  30411.  
  30412.     The Xtrieve record length maximum size is 8K in version 4.01.  The manual for 4.01 incorrectly states that the maximum record length is 4096 bytes in the Database Files, Calculating the Maximum Size (of Variable Length fields) section.  Also, the maximum size of Note and Lvar data types is documented incorrectly in appendix C.
  30413.  
  30414.  
  30415.  
  30416.  
  30417. FYI:    Btrieve v5.x Auto-Increment Key
  30418.                                      FYI
  30419.  
  30420. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30421.  
  30422.           TITLE:    Btrieve v5.x Auto-Increment Key
  30423.    DOCUMENT ID#:    FYI.A.1202
  30424.            DATE:    03APR90
  30425.         PRODUCT:    Btrieve
  30426. PRODUCT VERSION:    5.X
  30427.      SUPERSEDES:    NA
  30428.  
  30429.         SYMPTOM:    NA
  30430.  
  30431. ISSUE/PROBLEM
  30432.  
  30433.     If you ever wondered what would happen if you tried to insert a record with an autoincrement key when a record with the largest possible value (2 billion ...) already exists, Btrieve will return Status 5 - Duplicate key value.
  30434.  
  30435.  
  30436.  
  30437.  
  30438. FYI:    Btrieve v5.x VAP connections
  30439.                                      FYI
  30440.  
  30441. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30442.  
  30443.           TITLE:    Btrieve v5.x VAP connections
  30444.    DOCUMENT ID#:    FYI.A.1201
  30445.            DATE:    12MAR90
  30446.         PRODUCT:    NetWare Btrieve
  30447. PRODUCT VERSION:    5.X
  30448.      SUPERSEDES:    NA
  30449.  
  30450.         SYMPTOM:    NA
  30451.  
  30452. ISSUE/PROBLEM
  30453.  
  30454.     I had a developer ask me why the Btrieve VAP took up two connections on his userlist and why Btrieve files are only opened to the 2nd connection.
  30455.  
  30456.     With the Btrieve VAP, there are actually 3 processes active.  These respective functions generally are:
  30457.  
  30458.     1:    Console process: only wakes up to put things out to the server console.  Not actually logged in to the bindery.
  30459.  
  30460.     2:    SPX process:  Handles SPX requests from workstations. Logged in because the VAP must make bindery requests. This is the first Bserver connection when you do a userlist.
  30461.  
  30462.     3:    Btrieve process: Does the actual opening of files / processing.  This is the 2nd Bserver connection. If you look in FCONSOLE, the VAP will have the Btrieve files open.
  30463.  
  30464.  
  30465.  
  30466.  
  30467. FYI:    XQL v2.01 for OS/2 Environment Variables
  30468.                                      FYI
  30469.  
  30470. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30471.  
  30472.           TITLE:    XQL v2.01 for OS/2 Environment Variables
  30473.    DOCUMENT ID#:    FYI.A.1301
  30474.            DATE:    09MAR90
  30475.         PRODUCT:    XQL
  30476. PRODUCT VERSION:    2.01
  30477.      SUPERSEDES:    NA
  30478.  
  30479.         SYMPTOM:    NA
  30480.  
  30481. ISSUE/PROBLEM
  30482.  
  30483.     The manual is incorrect in the naming of the environment variables needed in XQL for OS/2 v2.01.
  30484.  
  30485.     It states that the environment variables are:
  30486.         SET XQLMPARM=
  30487.         SET XQLPPARM=
  30488.  
  30489.     They are actually
  30490.         SET XQLMPARMS=
  30491.         SET XQLPPARMS=
  30492.  
  30493.     ...notice the S at the end.
  30494.  
  30495.  
  30496.  
  30497.  
  30498. FYI:    Btrieve v5.10 VAP / SPX Buffers
  30499.                                      FYI
  30500.  
  30501. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30502.  
  30503.           TITLE:    Btrieve v5.10 VAP / SPX Buffers
  30504.    DOCUMENT ID#:    FYI.A.1102
  30505.            DATE:    21FEB90
  30506.         PRODUCT:    NetWare Btrieve
  30507. PRODUCT VERSION:    5.10
  30508.      SUPERSEDES:    NA
  30509.  
  30510.         SYMPTOM:    NA
  30511.  
  30512. ISSUE/PROBLEM
  30513.  
  30514.     Found out recently that 5.10 Btrieve VAP has an algorithm that increases the maximum number of SPX buffers (available) as the number of sessions increase. One of my customers happened to notice that B STATUS showed the maximum number of SPX buffers was higher in version 5.10 than what was shown in the 5.0 VAP release.  This happened as a result of allocating a higher number of concurrent sessions in BSETUP.
  30515.  
  30516.  
  30517.  
  30518.  
  30519. FYI:    Btrieve v5.0 & Cache Buffers
  30520.                                      FYI
  30521.  
  30522. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30523.  
  30524.           TITLE:    Btrieve v5.0 & Cache Buffers
  30525.    DOCUMENT ID#:    FYI.A.1101
  30526.            DATE:    21FEB90
  30527.         PRODUCT:    Btrieve
  30528. PRODUCT VERSION:    5.0
  30529.      SUPERSEDES:    NA
  30530.  
  30531.         SYMPTOM:    NA
  30532.  
  30533. ISSUE/PROBLEM
  30534.  
  30535.     By performing a simple calculation on a couple of the Btrieve load parameters, you can figure out the number of cache buffers allocated for your session with Btrieve.  The calculation follows:
  30536.  
  30537.        m - (f * 100) - g
  30538.       -----------------  = num
  30539.               p
  30540.  
  30541.        where
  30542.               m = the value of the /m: parameter (total memory)
  30543.               f = the value of the /f: parameter (number of files)
  30544.               p = the value of the /p: parameter (page size)
  30545.               g = 5000 (this is an estimate which represents overhead for
  30546.                   global variables)
  30547.             num = the number of the Btrieve cache buffers
  30548.  
  30549.     For instance, if Btrieve is loaded with the maximum memory size (64 KB), a page size of 4096, and with the default number of files (20), then the number of Btrieve cache buffers would be equal to:
  30550.  
  30551.        65536 - (20 * 100) - 5000
  30552.       -------------------------     =    14
  30553.                4096
  30554.  
  30555.     Consider the following:
  30556.  
  30557.     Multiple pages from Btrieve files get written to the same cache buffer as long as those pages are from the same Btrieve file.  If your buffer size is 4096, as in the example used above, and if the Btrieve file you are accessing uses a 512 byte page size, then Btrieve will be able to write 8 pages into one cache buffer.  Of course, the larger the cache, the faster the disk access, since the buffers won't have to be flushed as often.
  30558.  
  30559.     If multiple files are used, pages from different files get written to different cache buffers.  If the number of Btrieve files you need to use exceeds the number of cache buffers allocated, then it might be a good idea to decrease the size of the buffers by loading Btrieve with a smaller page size parameter and a larger /m parameter.  This would allocate more cache buffers, thereby improving the performance of Btrieve.  Of course, you may want to consider using smaller page sizes when you actually create your Btrieve files.
  30560.  
  30561.     Multiple pages from a Btrieve file get written to cache as reads and writes are performed on the file.  As the buffers get filled, and as the amount of I/O increases, the buffers must be flushed more often.  To get the greatest performance out of Btrieve through caching, you will want to increase the size of the cache by allocating the maximum (64K) for the /m parameter.  And in summary, if you are using multiple files simultaneously, you will want to increase the number of cache buffers available by decreasing the page size parameter.
  30562.  
  30563.  
  30564.  
  30565.  
  30566. FYI:    Basic v7.0 & Btrieve v5.10a+
  30567.                                      FYI
  30568.  
  30569. (Note: The origin of this information may be internal or external to Novell.  Novell makes every effort within its means to verify this information.  However, the information provided in this document is FOR YOUR INFORMATION only.  Novell makes no explicit or implied claims to the validity of this information.)
  30570.  
  30571.           TITLE:    Basic v7.0 & Btrieve v5.10a+
  30572.    DOCUMENT ID#:    FYI.A.1001
  30573.            DATE:    06FEB90
  30574.         PRODUCT:    Btrieve
  30575. PRODUCT VERSION:    5.10A+
  30576.      SUPERSEDES:    NA
  30577.  
  30578.         SYMPTOM:    NA
  30579.  
  30580. ISSUE/PROBLEM
  30581.  
  30582.     The new linker in Basic v7.0 in OVERLAYS uses expanded memory.  When an application runs with Btrieve loaded without /e all is OK.....when linked to the OVERLAYS.  But, when an application runs with Btrieve loaded without /e and NOT linked to the OVERLAYS you get a Status=57 'Expanded Memory Error' from Btrieve.  This seems to be somewhat reversed from what you might expect to occur.
  30583.  
  30584.  
  30585.  
  30586.  
  30587.